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}