cc [ flag ... ] file ... -ldl [ library ... ]
#include <dlfcn.h>
int dladdr(void * address, Dl_info * dlip);
MT-Safe
These routines are available to dynamically linked processes ONLY.
dladdr() determines if the specified address is located within one of the mapped objects that make up the current applications address space. An address is deemed to fall within a mapped object when it is between the base address, and the _end address of that object. If a mapped object fits this criteria, the symbol table made available to the run-time linker is searched to locate the nearest symbol to the specified address. The nearest symbol is one that has a value less than or equal to the required address.
The Dl_info structure must be preallocated by the user. The structure members are filled in by dladdr() based on the specified address. The Dl_info structure includes the following members:
const char * dli_fname; void * dli_fbase; const char * dli_sname; void * dli_saddr;
Descriptions of these members appear below.
If no symbol is found to describe the specified address, both the dli_sname and dli_saddr members are set to 0.