私は、ファイルポインタ(FILE * file
)を受け取り、そのファイル内のすべてをコピーする関数を持っています。さて、このファイルの中のすべてを消去することは可能ですか?どのようにファイル名なしでファイルの内容を取り除きますか?
ファイル名がないので、もう一度fopen(filename, "w")
を使用することはできません。
私にはstdio.h
とstring.h
が含まれています。
私は、ファイルポインタ(FILE * file
)を受け取り、そのファイル内のすべてをコピーする関数を持っています。さて、このファイルの中のすべてを消去することは可能ですか?どのようにファイル名なしでファイルの内容を取り除きますか?
ファイル名がないので、もう一度fopen(filename, "w")
を使用することはできません。
私にはstdio.h
とstring.h
が含まれています。
ftruncate()
システムコールを使用すると、ファイル記述子を使用してファイルを空にすることができます。
ftruncate(fileno(fh), 0);
おそらく、いずれかが、さらにかなり前のオフセットよりも、最初に作られたファイルへの書き込みようrewind(fh)
への呼び出しでそれをフォローアップすることになるでしょう。
私はdownvotingに同意しません。面白いことです。 –
'巻き戻し(fp); fprintf(fp、 ""); ' – stackptr
@stackptr:あなたが表示するスニペットは、ファイルの先頭に何も書き込まれません。 1バイトも切り捨てられません。 – alk