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