Home
Main website
Display Sidebar
Hide Ads
Recent Changes
View Source:
dlopen(3)
Edit
PageHistory
Diff
Info
LikePages
DLOPEN !!!DLOPEN NAME SYNOPSIS DESCRIPTION RETURN VALUE EXAMPLE ACKNOWLEDGEMENTS SEE ALSO ---- !!NAME dlclose, dlerror, dlopen, dlsym - Programming interface to dynamic linking loader. !!SYNOPSIS __#include __ __void *dlopen (const char *__''filename''__, int__ ''flag''__); const char *dlerror(void); void *dlsym(void *__''handle''__, char *__''symbol''__); int dlclose (void *__''handle''__);__ Special symbols: ___init__, ___fini__. !!DESCRIPTION __dlopen__ loads a dynamic library from the file named by the null terminated string ''filename'' and returns an opaque ''filename'' is not an absolute path (i.e., it does not begin with a '' A colon-separated list of directories in the user's __LD_LIBRARY_PATH__ environment variable. The list of libraries cached in ''/etc/ld.so.cache''. ''/usr/lib'', followed by ''/lib''. If ''filename'' is a NULL pointer, then the returned handle is for the main program. External references in the library are resolved using the libraries in that library's dependency list and any other libraries previously opened with the __RTLD_GLOBAL__ flag. If the executable was linked with the flag __ ''flag'' must be either __RTLD_LAZY__, meaning resolve undefined symbols as code from the dynamic library is executed, or __RTLD_NOW__, meaning resolve all undefined symbols before __dlopen__ returns, and fail if this cannot be done. Optionally, __RTLD_GLOBAL__ may be or'ed with ''flag,'' in which case the external symbols defined in the library will be made available to subsequently loaded libraries. If the library exports a routine named ___init__, then that code is executed before dlopen returns. If the same library is loaded twice with __dlopen()__, the same file handle is returned. The dl library maintains link counts for dynamic file handles, so a dynamic library is not deallocated until __dlclose__ has been called on it as many times as __dlopen__ has succeeded on it. If __dlopen__ fails for any reason, it returns NULL. A human readable string describing the most recent error that occurred from any of the dl routines (dlopen, dlsym or dlclose) can be extracted with __dlerror()__. __dlerror__ returns NULL if no errors have occurred since initialization or since it was last called. (Calling __dlerror()__ twice consecutively, will always result in the second call returning NULL.) __dlsym__ takes a __dlsym__ returns NULL; however, the correct way to test for an error from __dlsym__ is to save the result of __dlerror__ into a variable, and then check if saved value is not NULL. This is because the value of the symbol could actually be NULL. It is also necessary to save the results of __dlerror__ into a variable because if __dlerror__ is called again, it will return NULL. __dlclose__ decrements the reference count on the dynamic library handle ''handle''. If the reference count drops to zero and no other loaded libraries use symbols in it, then the dynamic library is unloaded. If the dynamic library exports a routine named ___fini__, then that routine is called just before the library is unloaded. !!RETURN VALUE __dlclose__ returns 0 on success, and non-zero on error. !!EXAMPLE __Load the math library, and print the cosine of 2.0:__ #include If this program were in a file named gcc -rdynamic -o foo foo.c -ldl !!ACKNOWLEDGEMENTS The dlopen interface standard comes from Solaris. The Linux dlopen implementation was primarily written by Eric Youngdale with help from Mitch D'Souza, David Engel, Hongjiu Lu, Andreas Schwab and others. The manual page was written by Adam Richter. !!SEE ALSO ld(1), ld.so(8), ldconfig(8), ldd(1), __ld.so.info__ ----
6 pages link to
dlopen(3)
:
WanDaemon
dladdr(3)
C++Notes
Man3d
CompilingHowto
Solaris
This page is a man page (or other imported legacy content). We are unable to automatically determine the license status of this page.