1 #include <unistd.h>
2 #include <fcntl.h>
3 #include <errno.h>
4
truncate(const char * pathname,_off_t len)5 int truncate(const char *pathname, _off_t len){
6 int ret, err;
7 int fd = _open(pathname,_O_BINARY|_O_RDWR);
8 if (fd == -1) return fd;
9 ret = ftruncate(fd,len);
10 _get_errno(&err);
11 _close(fd);
12 _set_errno(err);
13 return ret;
14 }
15
truncate64(const char * pathname,_off64_t len)16 int truncate64(const char *pathname, _off64_t len){
17 int ret, err;
18 int fd = _open(pathname,_O_BINARY|_O_RDWR);
19 if (fd == -1) return fd;
20 ret = ftruncate64(fd,len);
21 _get_errno(&err);
22 _close(fd);
23 _set_errno(err);
24 return ret;
25 }
26