LINUX.ORG.RU

fork && waitpid && dlopen


0

0
Доброго времени суток.

В родителе через dlopen && dlsym получаю хандлы функций в *.so'шках.

В ребенках юзаю эти handl'ы, но не закрываю.

Вопрос : может быть я делаю что то противоестественное? Нужно ли использовать в детях dlclose?

Спасибо.

★★★
Ихмо - нет. Поскольку при этом количество ссылок на открытую библиотеку сам понимаешь будет не таким как на самом деле.

В общем случае - сколько раз открыл - столько и закрывай.

anonymous
()
Мне кажется (информация не проверена) что в dlopen есть reference-counting. Поетому, сколько раз сделал dlopen столько же раз надо вызывать dlclose
the_coder ★★
()
Ответ на: комментарий от the_coder
> Мне кажется (информация не проверена) что в dlopen есть
> reference-counting.

да. но после fork() мы имеем копию процесса, и этот
счетчик копируется тоже. к тому же, dlclose() в child
никак не отразится на parent и наоборот.

разумеется, можно специально создать всякие побочные
эффекты через .fini и т.п.
idle ★★★★★
()
Ответ на: комментарий от fura13
> Хотлеось бы понять что же происходит при fork'e с этими хандлами.

да ничего не происходит, ровно.

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