テキストファイルがあります。C を使用してファイルの最後の行だけを削除するにはどうすればよいですか?
ありがとう!ジョン。
プレーンな ANSI C では、ファイルのサイズを縮小する標準的な方法は提供されていません。標準 C でこれを行う唯一の方法は、省略したい部分を除いて、ファイルの内容全体を新しいファイルにコピーすることです。
または、OS 固有の関数を使用して、ファイルをインプレースで切り捨てることもできます。たとえば、POSIX は、ftruncate()
ファイルを特定の長さに短縮する関数を提供します。最後の行の先頭を検索し、その直前のファイルを切り捨てます (lseek()
位置を取得するために使用します)。
GNU を使用している場合、最も簡単な代替手段は、それhead
を使用することです。
head -n -1 < file.original > file.new