同僚から、main()
関数を書かなくてもCプログラムを書いて実行できることがわかりました。これは次のように行うことができます:
my_main.c
/* Compile this with gcc -nostartfiles */
#include <stdlib.h>
void _start() {
int ret = my_main();
exit(ret);
}
int my_main() {
puts("This is a program without a main() function!");
return 0;
}
次のコマンドでコンパイルします。
gcc -o my_main my_main.c –nostartfiles
次のコマンドで実行します。
./my_main
いつこの種のことをする必要があるでしょうか?これが役立つであろう現実のシナリオはありますか?
_start()
や、その他のその他のことについて説明している読み物ですmain()
。
_start
、について、またはそれ以外のエントリポイントについては何も述べていませんmain
(ただし、エントリポイントの名前は、自立(埋め込み)実装の実装定義です)。