xref: /plan9-contrib/sys/src/ape/lib/ap/plan9/write.c (revision d9306527b4a7229dcf0cf3c58aed36bb9da82854)
13e12c5d1SDavid du Colombier #include <errno.h>
23e12c5d1SDavid du Colombier #include <unistd.h>
33e12c5d1SDavid du Colombier #include "lib.h"
43e12c5d1SDavid du Colombier #include "sys9.h"
53e12c5d1SDavid du Colombier 
63e12c5d1SDavid du Colombier ssize_t
write(int d,const void * buf,size_t nbytes)77dd7cddfSDavid du Colombier write(int d, const void *buf, size_t nbytes)
83e12c5d1SDavid du Colombier {
93e12c5d1SDavid du Colombier 	int n;
103e12c5d1SDavid du Colombier 
113e12c5d1SDavid du Colombier 	if(d<0 || d>=OPEN_MAX || !(_fdinfo[d].flags&FD_ISOPEN)){
123e12c5d1SDavid du Colombier 		errno = EBADF;
133e12c5d1SDavid du Colombier 		return -1;
143e12c5d1SDavid du Colombier 	}
153e12c5d1SDavid du Colombier 	if(_fdinfo[d].oflags&O_APPEND)
16*d9306527SDavid du Colombier 		_SEEK(d, 0, 2);
173e12c5d1SDavid du Colombier 	n = _WRITE(d, buf, nbytes);
183e12c5d1SDavid du Colombier 	if(n < 0)
193e12c5d1SDavid du Colombier 		_syserrno();
203e12c5d1SDavid du Colombier 	return n;
213e12c5d1SDavid du Colombier }
22