2017-07-03 4 views
0

ファイルを開いてすぐに閉じて、内容を削除するだけで安全です。fopen( "file_name.dat"、 "w")を使用してファイルの内容を削除する

FILE *fp = fopen("file_name.dat","w"); 
fclose(fp); 

私はそれを試して、うまく動作します。 お勧めの方法は? 他の方法で説明してください。 切り捨てファイルが重複していない知っておきたいのは、ファイルを削除する方法です。私はそれを推測し、どの本でも読んでいないからです。

+4

可能な複製を(https://stackoverflow.com/questions/873454/how -to-truncate-a-file-in-c) –

+0

注:提供される回答は、オペレーティングシステムにストレージを解放するだけです。内容はまだディスクブロックにあります。実際にそれを削除するには、r/wモードでファイルを開き、現在の内容をランダムなデータで上書きします。 –

+0

@PaulOgilvie fopenとfcloseで自分のやり方をした後、私は通常のエディタでfile_name.txtを開き、その内容はすべて削除されます。オペレーティングシステムへのストレージの解放に関する詳細な情報を提供してください。データはディスクブロックに残りますか? – EsmaeelE

答えて

3

それを達成する方法はいくつかあります。それはすべてあなたのユースケースに依存します。次のようにそれらのいくつかは以下のとおりです。 1.あなたが示唆したようにが、いくつかのチェック

FILE *fp = fopen("file_name.dat","w"); /*fopen("file_name.dat","wb");*/ 
if(fp) 
{ 
    fclose(fp); 
} 

ではfopenの戻り値をチェックすることをお勧めします。

  1. ファイルをすべて削除して、ファイルを再度開くことができます。 https://www.tutorialspoint.com/c_standard_library/c_function_remove.htm
+0

私はファイルを削除するtutoiralspointの方法を使用します。また別の方法を試して、私はfopen( "file.txt"、 "r")を読み込み、その上でremove()を行うファイルを開きます。この方法でも私のために働く。 – EsmaeelE

1
ファイルの内容をクリアする

簡単な方法:[?Cでファイルを切り捨てる方法]の

fclose(fopen("file.txt", "w")); 
+1

Fopen()はファイルを開いてヌルファイルポインタを返すhttp://en.cppreference.com/w/c/io/という条件(私は何も起こりません) fopen。私はfclose()でnull ptrを渡すようにテストし、segフォールトを与えます。 – EsmaeelE

関連する問題