xxd
このためのモードがあります。-i
/ --include
オプションは以下となります。
Cの出力にはファイルスタイルが含まれます。xxdがstdinから読み取らない限り、完全な静的配列定義が書き込まれます(入力ファイルにちなんで命名されます)。
それをファイルにダンプして#include
dにし、foo
他の文字配列と同じようにアクセス(またはリンク)することができます。また、配列の長さの宣言も含まれます。
出力は80バイトにラップされており、基本的には手で書くもののように見えます。
$ xxd --include foo
unsigned char foo[] = {
0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x2c, 0x20, 0x77, 0x6f, 0x72, 0x6c, 0x64,
0x21, 0x0a, 0x0a, 0x59, 0x6f, 0x75, 0x27, 0x72, 0x65, 0x20, 0x76, 0x65,
0x72, 0x79, 0x20, 0x63, 0x75, 0x72, 0x69, 0x6f, 0x75, 0x73, 0x21, 0x20,
0x57, 0x65, 0x6c, 0x6c, 0x20, 0x64, 0x6f, 0x6e, 0x65, 0x2e, 0x0a
};
unsigned int foo_len = 47;
xxd
少し奇妙なことに、vim
ディストリビューションの一部であるため、すでにそれを持っている可能性があります。そうでない場合は、そこから取得しますvim
。ソースからツールを独自に構築することもできます。