ファイル末尾10バイトを削る
ファイルを開き、末尾10バイトを削り、上書きする
というプログラムを作成しています。
とりあえず、以下のようなソースが出来ました。
------------------------------------------------------------------
ifp = fopen( "openfile.dat", "rb");
ofp = fopen( "outfile.dat", "wb" );
fseek( ifp, -10, SEEK_END );
pos_end = ftell( ifp );
fseek( ifp, 0, SEEK_SET );
for( pos_now = ftell( ifp ) ; pos_now < pos_end; pos_now = ftell( ifp )){
rCnt = fread( pbuf, sizeof( char ), 1, ifp );
f( rCnt == EOF ) break;
fwrite( pbuf, sizeof( char ), 1, ofp );
}
fclose( ifp );
*(openfile削除)
*(リネーム処理:outfile.dat -> openfile.dat)
以下略
------------------------------------------------------------------
ソースにあるとおり、
ファイルを開く -> ファイルの末尾10バイト目を記憶する。 ->
アウトファイルを開く -> 記憶した位置までコピーする -> オープンファイルの削除 ->
リネーム処理
という順番で処理を行っています。
本来は、
ファイルを開く -> ファイルの末尾10バイト目にEOFをいれる -> ファイルを閉じる
みたいな感じでやるつもりだったのですが、うまくいきませんでした。
後者のやり方や「私ならこうする!」等アドバイスがありましたら、是非お聞かせください。
よろしくお願いします。
お礼
ありがとうございます。 参考にさせていただきます。