2014-02-17 77 views
0

我正在以读取和写入模式打开文件。我正在阅读文件内容,并希望在阅读文件后清除文件内容,但在关闭流之前。我尝试在Google上搜索,但找不到任何信息。有没有办法截断打开的文件流?

注:我不想在打开文件时截断文件。

如果使用标准C++不可能使用任何其他类似boost或Qt的库吗?

回答

1

标准C++不支持此操作系统,但通常的操作系统是:Posix下的truncate和Windows下的SetEndOfFile

+0

这需要拿到手柄。如何获得用fstream打开的文件的句柄? – user221458

+0

@ user221458你不能(除非微软有扩展,像大多数Unix一样)。你必须确定位置(对于这个用法,'tellg'或'tellg'的返回值应该可以工作,至少在Microsoft实现中是这样的),然后关闭文件,然后用'CreateFile'打开它以获取句柄然后在SetEndOfFile后关闭它)。 –

+0

我不想关闭文件。这是问题。我想在文件因安全原因而打开时执行此操作。我不认为我可以在fstream已经打开时使用CreateFile。 – user221458

相关问题