Linux下的C库中是否有可以设置文件长度的函数?在 Windows 下,我知道有一个 SetFileLength() 函数。如果没有,在不删除和重写文件的情况下缩短文件的最佳方法是什么?
问问题
332 次
2 回答
5
您可以使用截断功能。
int truncate(const char *path, off_t length);
从手册页:
“truncate() 和 ftruncate() 函数导致由 path 命名或由 fd 引用的常规文件被截断为精确长度字节的大小。如果文件先前大于此大小,则额外的数据将丢失。如果以前的文件更短,它被扩展,扩展部分读取为空字节”
于 2008-12-10T23:33:03.003 回答
3
#include <unistd.h>
#include <sys/types.h>
int truncate(const char *path, off_t length);
int ftruncate(int fd, off_t length);
从它的手册页:
truncate() 和 ftruncate() 函数导致由 path 命名或由 fd 引用的常规文件被截断为精确长度字节的大小。
如果文件以前大于此大小,则多余的数据将丢失。如果文件先前较短,则将其扩展,扩展部分读取为空字节 ('\0')。
于 2008-12-10T23:33:17.853 回答