在Windows中有SetEndOfFile()API来截断一些数据。
我如何在Linux中做到这一点?
我正在寻找的伪代码示例(特定于Linux):
int fd = open("/path/to/file",O_RDWR); // file contents: "0123456789ABCDEF", 16 bytes lseek(fd,10,SEEK_CUR); // what's in the next line? (imaginary code) syscall(what,fd,FD_SET_EOF); close(fd); //sync(); // now file on disk looks like "0123456789", 10 bytes
ftruncate(fd, 10);
( lseek
电话是不需要的。)
man 2 ftruncate