dlclose(S)
dlclose --
close a dynamically linked library
Syntax
cc . . . -lc
#include <dlfcn.h>
int dlclose(void *handle);
Description
dlclose(S)
disassociates a shared object (a dynamically linked library
in our case) previously opened by
dlopen(S)
from the current process.
Once an object has been closed using
dlclose( ),
its symbols are no longer available to
dlsym(S).
All objects loaded automatically as a result of invoking
dlopen( )
on the referenced object
are also closed. handle
is the value returned by a previous invocation of
dlopen( ).
Return values
If the referenced object was successfully closed,
dlclose( )
returns 0.
If the object could not be closed, or if
handle does not refer to an open object,
dlclose( )
returns a non-zero value.
More detailed diagnostic information is
available through
dlerror(S).
Notes
A successful invocation of
dlclose( )
does not guarantee that the objects associated with handle
have actually been removed from the address space of the process.
Objects loaded by one invocation of
dlopen( )
may also be loaded by another invocation of
dlopen( ).
The same object may also be opened multiple times.
An object is not removed from the address space until
all references to that object through an explicit
dlopen( )
invocation have been closed and
all other objects implicitly referencing that object have also
been closed.
Once an object has been closed by
dlclose( ),
referencing symbols contained in that object can cause
undefined behavior.
See also
dlerror(S),
dlopen(S),
dlsym(S)
Standards conformance
dlclose(S)
is not part of any currently supported standard;
it is an extension of AT&T System V provided by
The Santa Cruz Operation, Inc.
© 2003 Caldera International, Inc. All rights reserved.
SCO OpenServer Release 5.0.7 -- 11 February 2003