2014-02-17 64 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

相關問題