打開文件並立即關閉文件以刪除文件內容是否安全可接受。使用fopen(「file_name.dat」,「w」)刪除文件的內容
FILE *fp = fopen("file_name.dat","w");
fclose(fp);
我嘗試它並且對我很好。 什麼是推薦方法? 請解釋一下這樣做的其他方式。 我想知道的truncate文件不重複是這種方式刪除文件真正的,因爲我猜它並沒有在任何書籍中讀取它
打開文件並立即關閉文件以刪除文件內容是否安全可接受。使用fopen(「file_name.dat」,「w」)刪除文件的內容
FILE *fp = fopen("file_name.dat","w");
fclose(fp);
我嘗試它並且對我很好。 什麼是推薦方法? 請解釋一下這樣做的其他方式。 我想知道的truncate文件不重複是這種方式刪除文件真正的,因爲我猜它並沒有在任何書籍中讀取它
有很多方法可以實現它。這完全取決於你的用例。他們很少如下: 1.正如你建議,但有幾項檢查
FILE *fp = fopen("file_name.dat","w"); /*fopen("file_name.dat","wb");*/
if(fp)
{
fclose(fp);
}
這是更好地檢查則fopen回報。
謝謝。我使用tutoiralspoint刪除文件的方式。另外通過嘗試另一種方法,我打開一個閱讀fopen(「file.txt」,「r」)的文件並對其執行remove()操作。這種方式也適用於我。 – EsmaeelE
簡單的方法來清除文件的內容:
fclose(fopen("file.txt", "w"));
雖然它似乎很快的答案,但假設一個條件(我不是任何方式發生),fopen()無法打開文件並返回空文件指針http://en.cppreference.com/w/c/io/打開。我測試在fclose()中傳遞null ptr並給我seg錯誤。 – EsmaeelE
的可能的複製[?如何截斷在C文件(https://stackoverflow.com/questions/873454/how截至一個文件在c) –
注意:提供的答案只釋放到操作系統的存儲。內容仍在磁盤塊中。要真正刪除它,請以r/w模式打開文件,並用隨機數據覆蓋當前內容。 –
@PaulOgilvie在fopen和fclose上完成我的工作之後,我使用常規編輯器打開file_name.txt,並刪除了其所有內容。請您提供關於將存儲釋放到操作系統的更多特定信息,並將數據保留在磁盤塊上。 – EsmaeelE