xref: /plan9-contrib/sys/src/ape/lib/ap/plan9/ftruncate.c (revision 592359c98f215f239828a6e51aa1b49d296866c9)
1*592359c9SDavid du Colombier #include "lib.h"
27dd7cddfSDavid du Colombier #include <sys/types.h>
37dd7cddfSDavid du Colombier #include <unistd.h>
47dd7cddfSDavid du Colombier #include <errno.h>
5*592359c9SDavid du Colombier #include "dir.h"
67dd7cddfSDavid du Colombier 
77dd7cddfSDavid du Colombier int
ftruncate(int fd,off_t length)87dd7cddfSDavid du Colombier ftruncate(int fd, off_t length)
97dd7cddfSDavid du Colombier {
10*592359c9SDavid du Colombier 	Dir d;
11*592359c9SDavid du Colombier 
12*592359c9SDavid du Colombier 	if(length < 0){
137dd7cddfSDavid du Colombier 		errno = EINVAL;
147dd7cddfSDavid du Colombier 		return -1;
157dd7cddfSDavid du Colombier 	}
16*592359c9SDavid du Colombier 	_nulldir(&d);
17*592359c9SDavid du Colombier 	d.length = length;
18*592359c9SDavid du Colombier 	if(_dirfwstat(fd, &d) < 0){
19*592359c9SDavid du Colombier 		_syserrno();
20*592359c9SDavid du Colombier 		return -1;
21*592359c9SDavid du Colombier 	}
22*592359c9SDavid du Colombier 	return 0;
23*592359c9SDavid du Colombier }
24