ファイルの先頭にあるバイト数を編集する、または "X倍のsizeof(int)領域"にジャンプする書き込み操作を実行するなど、バイナリファイルに対する操作を実行する必要があります。実際のコードスニペットに興味を持っているわけではありません。これはfseekの仕事ですか?私は私の記憶の中のファイルからのデータを読み込まないことが重要です。バイナリファイルのCでの操作
0
A
答えて
2
はい、これはfseek()
の仕事です。
ファイルの途中に書き込むと、既存のデータが上書きされます。追加する予定の金額だけ後続のすべてのデータを移動する必要があります。
1
fseek()
を使用できますが、mmap()
もご覧ください。後者の利点は、ファイル内の現在のポインタを気にする必要がなく、オフセットを使用してナビゲートできる単なるメモリ領域です。
問題ありません:いいえmmap()
for Windows。 のデータを挿入する場合は、のデータを使用することをお勧めします。
関連する問題
- 1. javaバイナリファイル操作
- 2. Cでのバイナリファイルの読み取り操作?
- 3. C++でのセットの操作
- 4. C#でのダイアログボックスの操作
- 5. C#でデータを操作する操作
- 6. Cでのポインタ操作
- 7. C++でのファイル操作
- 8. C++での日付操作
- 9. Cでのファイル操作
- 10. Unidata Cでのファイル操作
- 11. Cコードでのビット操作
- 12. C++での低レベルディスク操作
- 13. C++バイナリファイル - ints - strangeの動作を書く
- 14. C#でのchar(C++)の操作
- 15. C#のクエリ操作
- 16. コレクションの操作C#
- 17. C++ newbie:make_sharedの操作
- 18. C/C++でのバイナリファイルの読み書き
- 19. C#のバイトの操作
- 20. C#アプリケーションのシステムアイコンの操作
- 21. C++ビット操作
- 22. C++ファイル操作
- 23. C#パス操作
- 24. Cビット操作
- 25. C、ビットマップ操作
- 26. Cポインタ操作
- 27. C++アプリケーションでのDLLの操作
- 28. PythonでのCスタイルデータの操作
- 29. Cでのビット単位の操作 - AnyOddBit
- 30. C++でのshared_ptrのアトミック操作11
そして、特定のオフセットを途中で指定すると、単に上書きされますか? – andrei
@andrei yes - ファイルの内容を変更したい場合は、必要なものを書き込んで新しいファイルを作成し、最後に(アトミックに)名前を変更する方がよいでしょう。これは一般的なプロセスですが、落とし穴がたくさんあります:適切な解決策を見つけるためにこれについてgoogleしてください。 – fge