ftruncate
- 功能:截断文件,将文件大小设置为一个固定的值
- 原型:
int ftruncate(int fd, off_t length);
- 参数:
1)fd
2)length
a.小于文件原来的大小:截断
b.大于文件原来的大小:扩充的部分,内容为空字符0,不会分配磁盘空间\只有写入字符时才会真正分配磁盘空间(文件空洞) - 返回值:
成功:返回0
失败:返回-1,并会设置errno - DO
#include <func.h>
int main(int argc, char* argv[]) {
if (argc != 3) {
error(1, 0, "Usage: %s file length", argv[0]);
}
off_t length;
sscanf(argv[2], "%ld", &length);
int fd = open(argv[1], O_WRONLY);
if (fd == -1) {
error(1, errno, "open %s", argv[1]);
}
if (ftruncate(fd, length) == -1) {
error(1, errno, "ftruncate %d", fd);
}
close(fd);
return 0;
}