LINUX.ORG.RU

Надо функцию объявить с атрибутом constructor:

static void my_init_function(void) __attribute__ ((constructor));

Работает только в GCC.

ero-sennin ★★
()

_init(). но можешь назвать как угодно и при загрузке вызывать через dlsym().

а вообще - man 3 dlopen

friday ★★★
()
Ответ на: комментарий от ero-sennin

я в курсе. хотел даже написать, что лучше их не юзать, но поленился:-)

friday ★★★
()

Для компиляторов, которые умеют соответствующие pragma (gcc не умеет):

#pragma init(my_init_function)
#pragma fini(my_fini_function)

Для gcc можно передавать опцию линкеру, типа
-Wl,-init=...
-Wl,-fini=...
или как уже было замечено использовать __attribute__ (сам не использовал).

HTH

Onanim
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.