master
1#include <unistd.h>
2#include <fcntl.h>
3#include <errno.h>
4
5int 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 err = errno;
11 _close(fd);
12 errno = err;
13 return ret;
14}
15
16int 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 err = errno;
22 _close(fd);
23 errno = err;
24 return ret;
25}