1

私の C プログラムでは、 を使用した後fread()、ファイル ポインタが時々ファイルの最後に移動するという問題があります。

私はよりよく説明しようとします - コードは次のようになります:

dummy = ftell(fp);
fread(&buf, sizeof(unsigned char), 8, fp);
dummy = ftell(fp);

wherefpは開いているファイルへのファイル ポインタです ("w+" で開きました。私はそれをバイナリ ファイルとして使用しており、そこにも "b" が含まれているはずですが、あまり重要ではないと聞きました)それを追加するには..)、 dummy単なるunsigned long変数でありbufunsigned char[8]

今、デバッグするとき、 のftellfreaddummyは 262062 で、 のftellfreaddummyは 262640 ですが、8 バイトしか「移動」しませんでした..

誰かがこれの原因が何であるか考えています..? ご協力いただきありがとうございます :)

4

1 に答える 1

5

bファイルを開くために を使用しない場合、はftell()真実を返しません。. fseek()そこにはさまざまな実装があります。詳細については、システムのマニュアル ページを確認してください。

于 2010-03-27T18:29:59.897 に答える