dlsym(3C) dlsym(3C)
NAME
dlsym - get the address of a symbol in shared object
SYNOPSIS
#include <dlfcn.h>
void *dlsym(void *handle, const char *name);
DESCRIPTION
dlsym allows a process to obtain the address of a symbol
defined within a shared object previously opened by dlopen.
handle is a value returned by a call to dlopen; the
corresponding shared object must not have been closed using
dlclose. name is the symbol's name as a character string.
dlsym searches for the named symbol in all shared objects
loaded automatically as a result of loading the object
referenced by handle [see dlopen(3C)].
Return Values
If handle does not refer to a valid object opened by dlopen,
or if the named symbol cannot be found within any of the
objects associated with handle, dlsym returns NULL. More
detailed diagnostic information is available through dlerror.
USAGE
Examples
The following example shows how one can use dlopen and dlsym
to access either function or data objects. For simplicity,
error checking has been omitted.
void *handle;
int i, *iptr;
int (*fptr)(int);
/* open the needed object */
handle = dlopen("/usr/mydir/libx.so", RTLD_LAZY);
/* find address of function and data objects */
fptr = (int (*)(int))dlsym(handle, "some_function");
iptr = (int *)dlsym(handle, "int_object");
/* invoke function, passing value of integer as a parameter */
i = (*fptr)(*iptr);
REFERENCES
dlclose(3C), dlerror(3C), dlopen(3C)
Copyright 1994 Novell, Inc. Page 1