main() の前や後に実行することができる。GotoBLAS2 では、ここで pthread_create を実行している模様。個人的には CPU 数やpagesize の取得なども使えるかと思う。sysconf()を何回も呼び出すのはどうもきれいではない気がするので。それから、Thread 数を環境変数から取得するとか、実行環境情報を取得する方法としては使い道が結構ありそう。
void __attribute__ ((constructor)) initializer(void) { /* main() の前に実行 */ } void __attribute__ ((destructor)) finalizer(void) { /* main() の後に実行 */ }