cでquine
これはズルですよね?
test.c
#include <stdio.h> extern char _binary_test_c_start[]; int main(void) { printf("%s",_binary_test_c_start); }
$ objcopy --readonly-text -I binary -O elf32-i386 -B i386 test.c self.o $ gcc -o test $ ./test #include <stdio.h> extern char _binary_test_c_start[]; int main(void) { printf("%s",_binary_test_c_start); }
objcopyはBinaryHacksに載ってました。
(自分自身のコードを埋め込むアイデアも載ってました)
普通のやつらの下を行け: objcopy で実行ファイルにデータを埋め込む - bkブログ
http://0xcc.net/blog/archives/000076.html
これを受けて自分自身のビルド環境やらchangelogやらを
tarボールにして埋め込んじゃうのは面白いかもしれない。
ちょっとしたツールの場合
バージョン毎のソース管理するの面倒だけど
これ、何だったっけ?っていう時に便利??