给定任何文件的哪个程序创建C数组?

0x6*_*015 34 c unix linux arrays

我记得在过去看过一个程序,它会接收任何文件并生成一个C数组,表示该文件作为输出; 在某些情况下,它会阻止分发单独的文件.哪个Unix/Linux程序可以做到这一点?

Dav*_*vid 13

对于大型文件,转换为文本然后让编译器再次解析它是低效且不必要的.objcopy改为使用:

objcopy -I binary -O elf32-i386 stuff stuff.o
Run Code Online (Sandbox Code Playgroud)

(根据非x86平台的需要调整输出架构.)然后,一旦将其链接到程序中,就可以像下面这样访问它:

extern char _binary_stuff_start[], _binary_stuff_end[];
#define SIZE_OF_STUFF (_binary_stuff_end - _binary_stuff_start)

...

foo(_binary_stuff_start[i]);
Run Code Online (Sandbox Code Playgroud)


0x6*_*015 5

hexdump -v -e '16/1 "0x%x," "\n"'
Run Code Online (Sandbox Code Playgroud)

会从stdin生成一个类似C的数组,但是没有声明,没有花括号或格式正确。