xref: /plan9-contrib/sys/src/ape/lib/ap/plan9/write.c (revision d9306527b4a7229dcf0cf3c58aed36bb9da82854)
1 #include <errno.h>
2 #include <unistd.h>
3 #include "lib.h"
4 #include "sys9.h"
5 
6 ssize_t
write(int d,const void * buf,size_t nbytes)7 write(int d, const void *buf, size_t nbytes)
8 {
9 	int n;
10 
11 	if(d<0 || d>=OPEN_MAX || !(_fdinfo[d].flags&FD_ISOPEN)){
12 		errno = EBADF;
13 		return -1;
14 	}
15 	if(_fdinfo[d].oflags&O_APPEND)
16 		_SEEK(d, 0, 2);
17 	n = _WRITE(d, buf, nbytes);
18 	if(n < 0)
19 		_syserrno();
20 	return n;
21 }
22