dlopen a vicenasobne zavedeni .so

Karel Zak zakkr na zf.jcu.cz
Středa Září 5 13:22:40 CEST 2001


On Wed, Sep 05, 2001 at 12:24:38PM +0200, Radek Cervinka wrote:
> Dobry den,
> narazil jsem na problem s pouzitim dlopen.
> Chtel jsem opakovane zavest nejakou .so (pokazde si to melo precist
> novou konfiguraci a ulozit do globalnich promennych v knihovne - ty se
> exportovat
> nemaji). Jake bylo me prekvapeni, ze mi dlopen pokazde vrati stejny handle.
> Nasledne totiz ziskavam adresu rutiny v .so podle handlu, ktera muze ty
> globalni
> data modifikovat, tj. kdyz to zavedu po druhe tak mi to prepise ty prvni.
> 
> Je to dokumentovane chovani, nebo to delam spatne?

 Asi mate jiny manual nez ja :-)

If  the  same
       library  is loaded twice with dlopen(), the same file han­
       dle is returned.  The dl library maintains link counts for
       dynamic  file handles, so a dynamic library is not deallo­
       cated until dlclose has been called on it as many times as
       dlopen has succeeded on it.

 Pokud se podivate do zdrojaku glibc tak to tak opravdu je :-)



-- 
 Karel Zak  <zakkr na zf.jcu.cz>
 http://home.zf.jcu.cz/~zakkr/
 
 C, PostgreSQL, PHP, WWW, http://docs.linux.cz, http://mape.jcu.cz


Další informace o konferenci Linux