DLCLOSE(3) Library Functions Manual DLCLOSE(3)

dlcloseclose a dynamic library or bundle

#include <dlfcn.h>

int
dlclose(void* handle);

() 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.

Note: there are a couple of cases in which a dynamic library will never be unloaded: 1) the main executable directly or indirectly links against it, 2) the dynamic library is in dyld's shared cache, 3) the dynamic library has thread-local variables, or 4) the dynamic library contains Objective-C classes.

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().

dlopen(3) dlsym(3) dlerror(3) dyld(3) ld(1) cc(1)

February 8, 2024