问如何原地截短文件而不完全清除或重写它?
答BSD 系统提供ftruncate,其他一些系统提供chsize,还有一些可能提供(可能未公开文档的)fcntl选项 F_FREESP。在 MS-DOS 下,有时可以使用write(fd, "", 0)。但是,没有通用的解决方案,也无法删除文件开头或中间的块。另请参阅第 19.14 题。
由 托管