0
我正在以讀取和寫入模式打開文件。我正在閱讀文件內容,並希望在閱讀文件後清除文件內容,但在關閉流之前。我嘗試在Google上搜索,但找不到任何信息。有沒有辦法截斷打開的文件流?
注:我不想在打開文件時截斷文件。
如果使用標準C++不可能使用任何其他類似boost或Qt的庫嗎?
我正在以讀取和寫入模式打開文件。我正在閱讀文件內容,並希望在閱讀文件後清除文件內容,但在關閉流之前。我嘗試在Google上搜索,但找不到任何信息。有沒有辦法截斷打開的文件流?
注:我不想在打開文件時截斷文件。
如果使用標準C++不可能使用任何其他類似boost或Qt的庫嗎?
標準C++不支持此操作系統,但通常的操作系統是:Posix下的truncate
和Windows下的SetEndOfFile
。
這需要拿到手柄。如何獲得用fstream打開的文件的句柄? – user221458
@ user221458你不能(除非微軟有擴展,像大多數Unix一樣)。你必須確定位置(對於這個用法,'tellg'或'tellg'的返回值應該可以工作,至少在Microsoft實現中是這樣的),然後關閉文件,然後用'CreateFile'打開它以獲取句柄然後在SetEndOfFile後關閉它)。 –
我不想關閉文件。這是問題。我想在文件因安全原因而打開時執行此操作。我不認爲我可以在fstream已經打開時使用CreateFile。 – user221458