DLCLOSE(3) | Library Functions Manual | DLCLOSE(3) |
dlclose
— close a
dynamic library or bundle
#include
<dlfcn.h>
int
dlclose
(void*
handle);
dlclose
()
releases a reference to the dynamic library or bundle referenced by
handle. If the reference count drops to 0, the bundle
is removed from the address space, and handle is
rendered invalid. Just before removing a dynamic library or bundle in this
way, any termination routines in it are called. handle
is the value returned by a previous call to dlopen.
Prior to Mac OS X 10.5, only bundles could be unloaded. Starting in Mac OS X 10.5, dynamic libraries may also be unloaded. There are a couple of cases in which a dynamic library will never be unloaded: 1) the main executable links against it, 2) an API that does not support unloading (e.g. NSAddImage()) was used to load it or some other dynamic library that depends on it, 3) the dynamic library is in dyld's shared cache.
If dlclose
() is successful, it returns a
value of 0. Otherwise it returns -1, and sets an error string that can be
retrieved with dlerror
().
November 6, 2006 |