C言語でバイナリファイルを編集の方法
バイナリファイルを編集するにはC言語のファイル操作関数が使えます。通常のバイナリファイル編集の手順は以下です。
- 変更するバイナリファイルを開きます。
FILE *file = fopen("filename", "rb+");
このファイルは”rb+”モードでバイナリ形式で開かれ、読み書きが許可されています。
- 修正する位置を特定する
fseek(file, offset, SEEK_SET);
ここでオフセットは、ファイル内の変更する位置のオフセットであり、SEEK_SETはファイルの頭からオフセットを計算することを示します。
- ネイティブに修正する。
fwrite(&data, sizeof(data), 1, file);
ここに記載されているデータは書き込まれるデータであり、 sizeof(data)はデータのバイト数、1はデータの個数を表します。
- ファイルを閉じる。
fclose(file);
完全なコードの例:
#include <stdio.h>
int main() {
FILE *file = fopen("filename", "rb+");
if (file == NULL) {
printf("Failed to open file.\n");
return 1;
}
// 定位到要修改的位置
fseek(file, offset, SEEK_SET);
// 进行修改操作
fwrite(&data, sizeof(data), 1, file);
// 关闭文件
fclose(file);
return 0;
}
バイナリーファイルを修正すると壊れる恐れがあるので、操作前には必ず元のファイルをバックアップすることをおすすめします。修正時は、データのサイズと型がファイル内のフォーマットと一致していることを確認し、データの不整合が発生しないように注意しましょう。