如何用fstream减少文件末尾的不必要空间?我有一个二进制文件~250 at大,在某些操作之后,我剩下了大约100 at的数据留在文件中(在开始时)。然而,该文件仍然是250 is。如何释放磁盘空间?
它是许多相同的结构,它们顺序地写到文件中,使用:
fstream::write((char *)data_struct,sizeof(data_struct));有时,不再需要文件末尾的结构。
发布于 2015-06-11 09:00:48
除非打开文件流,否则文件流不支持截断。您需要关闭它,然后使用特定于OS的方法来设置精确的长度。对于Windows和Linux,即:
Windows:SetEndOfFile()
Linux:truncate()/ftruncate()
https://stackoverflow.com/questions/30775951
复制相似问题