プロが教える店舗&オフィスのセキュリティ対策術

バイナリーデータの一部のデータを変更したいと考えています。

freadでファイルを読んでいった場合、初めからデータを読んでいくと思います。
途中のデータだけ変更する場合、freadで順に読んでいくしかないのでしょうか?
もしくは別の有効な方法があるのでしょうか?

A 回答 (3件)

haya-c です。



目的の位置がわかっているのであれば、fseek() でシークポインタを移動してそこのデータを変更すればよいと思います。
例えばファイル先頭から 40 バイト目にアクセスするために、fseek() で 40 バイト目にポインタを移動してアクセスするということです。
    • good
    • 0
この回答へのお礼

ありがとうございます。うまくいきました。

お礼日時:2011/07/08 17:59

mmap(UNIX系)とかCreateFileMapping&MapViewOfFile(Windows)とかでメモリにマッピングして必要な位置だけ書き換えるとか。

    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2011/07/08 17:59

fseek()ですかね。



ファイルサイズによっては使えない場合もあるかも知れませんのでご注意を。
# 2Gを越えると~とかそんな感じで。
fseek64()とか用意されていたるする場合も…
# 詳細は環境のリファレンスを。

ちなみに、テキストモードの時はfseek()が期待する動作をしないかも知れない。
という点にはご注意を。
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2011/07/08 17:59

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!