xref: /plan9/sys/src/libstdio/sopenw.c (revision 7dd7cddf99dd7472612f1413b4da293630e6b1bc)
13e12c5d1SDavid du Colombier /*
23e12c5d1SDavid du Colombier  * pANS stdio -- sopenw
33e12c5d1SDavid du Colombier  */
43e12c5d1SDavid du Colombier #include "iolib.h"
sopenw(void)53e12c5d1SDavid du Colombier FILE *sopenw(void){
63e12c5d1SDavid du Colombier 	FILE *f;
7*7dd7cddfSDavid du Colombier 	qlock(&_stdiolk);
83e12c5d1SDavid du Colombier 	for(f=_IO_stream;f!=&_IO_stream[FOPEN_MAX];f++) if(f->state==CLOSED) break;
9*7dd7cddfSDavid du Colombier 	if(f==&_IO_stream[FOPEN_MAX]) {
10*7dd7cddfSDavid du Colombier 		qunlock(&_stdiolk);
11*7dd7cddfSDavid du Colombier 		return NULL;
12*7dd7cddfSDavid du Colombier 	}
133e12c5d1SDavid du Colombier 	f->buf=f->rp=f->wp=0;
143e12c5d1SDavid du Colombier 	f->state=OPEN;
153e12c5d1SDavid du Colombier 	f->flags=STRING;
163e12c5d1SDavid du Colombier 	f->fd=-1;
17*7dd7cddfSDavid du Colombier 	qunlock(&_stdiolk);
183e12c5d1SDavid du Colombier 	return f;
193e12c5d1SDavid du Colombier }
20