Linux下的C库中是否有可以设置文件长度的函数?在Windows下我知道有一个SetFileLength()函数.如果没有,缩短文件而不删除和重写文件的最佳方法是什么?
您可以使用truncate函数.
int truncate(const char *path, off_t length);
从手册页:
"truncate()和ftruncate()函数导致由path命名或由fd引用的常规文件被截断为精确长度字节的大小.如果先前文件大于此大小,则额外数据将丢失.以前的文件较短,它被扩展,扩展部分读取为空字节"