使用系统调用 truncate()
或 ftruncate()
可以将普通文件截断为指定字节长度。函数原型如下所示:
#include <unistd.h>
int truncate(const char *path, off_t length);
int ftruncate(int fd, off_t length);
这两个函数的区别在于:ftruncate()
使用文件描述符 fd
来指定目标文件,而 truncate()
则直接使用文件路径 path
来指定目标文件,但它们的功能是一样的。
这两个函数都可以对文件进行截断操作,即将文件截断为参数 length
指定的字节长度。截断的意思是,如果文件目前的大小大于参数 length
所指定的大小,则多余的数据将被丢失,相当于将多余部分“砍”掉;如果文件目前的大小小于参数 length
所指定的大小,则文件将被扩展,扩展部分将填充空字节