sopenw.c 351 B

12345678910111213141516171819
  1. /*
  2. * pANS stdio -- sopenw
  3. */
  4. #include "iolib.h"
  5. FILE *sopenw(void){
  6. FILE *f;
  7. qlock(&_stdiolk);
  8. for(f=_IO_stream;f!=&_IO_stream[FOPEN_MAX];f++) if(f->state==CLOSED) break;
  9. if(f==&_IO_stream[FOPEN_MAX]) {
  10. qunlock(&_stdiolk);
  11. return NULL;
  12. }
  13. f->buf=f->rp=f->wp=0;
  14. f->state=OPEN;
  15. f->flags=STRING;
  16. f->fd=-1;
  17. qunlock(&_stdiolk);
  18. return f;
  19. }