Binary Hack本で記載されていたGCCの__attribute__を使ってconstructor指定した関数は、その実体を持つ動的リンクライブラリファイルをロードしたときに実行されます(main関数が呼ばれる前)。 namespace charlie { void init() __attribute__((constructor)); void init() { std::cout << "charlie::init()" << std::endl; // 初期化処理 } } 例えば上記のコードを持つ動的リンクライブラリlibcharlie.soを作成し、main関数を持つコードとリンクすると、charlie::initが先に実行されて、mainが実行されます。 main.o ---> libcharlie.so これはなかなか便利な機能ですが、扱い上の注意点もあります。cons