バイナリーファイルを C 言語の配列で出力

仕事柄、バイナリーデーターをそのまま C 言語の配列に変換してプログラムに組み込むことがあるのですが、これまでは自作のプログラムでやってました。

Linux 環境には od とか hexdump とか hd とかあるのでそれでできないか考えていましたが、 xxd というコマンドがあってそれを使うと簡単に C 言語の配列に変換してくれます。

xxd -i ファイル名

ためしに .bashrc を 変換してみました。

$ xxd -i .bashrc
unsigned char _bashrc[] = {
  0x23, 0x20, 0x2e, 0x62, 0x61, 0x73, 0x68, 0x72, 0x63, 0x0a, 0x0a, 0x23,
  0x20, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, 0x67, 0x6c, 0x6f, 0x62,
  0x61, 0x6c, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f,
  0x6e, 0x73, 0x0a, 0x69, 0x66, 0x20, 0x5b, 0x20, 0x2d, 0x66, 0x20, 0x2f,
  0x65, 0x74, 0x63, 0x2f, 0x62, 0x61, 0x73, 0x68, 0x72, 0x63, 0x20, 0x5d,
  0x3b, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x09, 0x2e, 0x20, 0x2f, 0x65,
  0x74, 0x63, 0x2f, 0x62, 0x61, 0x73, 0x68, 0x72, 0x63, 0x0a, 0x66, 0x69,
  0x0a, 0x0a, 0x23, 0x20, 0x55, 0x73, 0x65, 0x72, 0x20, 0x73, 0x70, 0x65,
  0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x65,
  0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69,
  0x6f, 0x6e, 0x73, 0x0a
};
unsigned int _bashrc_len = 124;

完全に C 言語のソースにしてくれいます。

これは便利。

コメント

このブログの人気の投稿

CentOS 6.5 でシリアルポートに接続する方法