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 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.