NAME
dlerror — get
diagnostic information
SYNOPSIS
#include
<dlfcn.h>
char *dlerror(void);
DESCRIPTION
The dlerror () function shall return a
null-terminated character string (with no trailing <newline>) that
describes the last error that occurred during dynamic linking processing. If
no dynamic linking errors have occurred since the last invocation of
dlerror (), dlerror () shall
return NULL. Thus, invoking dlerror () a second
time, immediately following a prior invocation, shall result in NULL being
returned.
It is implementation-defined whether or not the
dlerror () function is thread-safe. A thread-safe
implementation shall return only errors that occur on the current
thread.
RETURN VALUE
If successful, dlerror () shall return a
null-terminated character string; otherwise, NULL shall be returned.
The application shall not modify the string returned. The returned
pointer might be invalidated or the string content might be overwritten by a
subsequent call to dlerror () in the same thread (if
dlerror () is thread-safe) or in any thread (if
dlerror () is not thread-safe). The returned pointer
might also be invalidated if the calling thread is terminated.
ERRORS
No errors are defined.
EXAMPLES
The following example prints out the last dynamic linking error:
...
#include <dlfcn.h>
char *errstr;
errstr = dlerror();
if (errstr != NULL)
printf ("A dynamic linking error occurred: (%s)\n", errstr);
...
APPLICATION USAGE
Depending on the application environment with respect to asynchronous execution events, such as signals or other asynchronous computation sharing the address space, conforming applications should use a critical section to retrieve the error pointer and buffer.
RATIONALE
None.
FUTURE DIRECTIONS
None.
SEE ALSO
dlclose(3), dlopen(3), dlsym(3)
XBD <dlfcn.h>
CHANGE HISTORY
First released in Issue 5.
Issue 6
A note indicating that this function need not be reentrant is added to the DESCRIPTION.
Issue 7
Austin Group Interpretation 1003.1-2001 #156 is applied.
The dlerror () function is moved from the
XSI option to the Base.
POSIX.1-2008, Technical Corrigendum 1, XSH/TC1-2008/0070 [75], XSH/TC1-2008/0071 [97], and XSH/TC1-2008/0072 [133] are applied.
POSIX.1-2008, Technical Corrigendum 2, XSH/TC2-2008/0082 [656] is applied.