LINKER
Overview
Provides functions and structures related to linking and loading.
Since:
1.0
Version:
1.0
Summary
Files
Provides functions and structures related to linking and loading. |
Macros
All undefined symbols in the shared object are not resolved before dlopen() returns. |
|
All undefined symbols in the shared object are resolved before dlopen() returns. |
|
The shared object is not loaded. It can be used to test whether the object resides in the memory. |
|
The shared object is not deleted during dlclose(). |
|
The symbols defined by the loaded shared object can be resolved by other shared objects opened later. |
|
The symbols defined by the loaded shared object cannot be resolved by other shared objects opened later. |
|
The next match of the required symbol is searched in the search order after the current object. |
|
The first match of the required symbol is searched in the default shared object search order. The search scope includes the global symbols of the program and its dependencies, and the global symbols loaded by the dlopen() function. |
|
The pointer to the link_map structure of the specified handle. |
Functions
dlclose (void handle) |
|
dlerror (void) |
Obtains the latest error that occurred during a DLL function execution failure. |
dlopen (const char filename, int flags) |
|
dlsym (void handle, const char symbol) |
Details
Function Documentation
dlclose()
int dlclose (void * handle)
Description:
Closes the DLL of a specified handle.
Parameters:
handle | Indicates the loaded DLL handle. |
Attention:
The symbols associated with the handle may not be removed from the caller’s address space even if the dlclose() function returns. The symbols are removed only when the reference count of the DLL is 0. The reference count is incremented (by 1) each time the dlopen() function is explicitly called. In addition, the reference of DLL depended on by other DLLs or programs will be counted if it has been implicitly loaded. A shared object can be removed from the address space only after all references are released.
Returns:
Returns 0 if the operation is successful; returns a non-zero value if the operation fails.
dlerror()
char* dlerror (void )
Description:
Obtains the latest error that occurred during a DLL function execution failure.
Returns:
Returns the error if occurred; returns NULL if the DLL function execution is successful.
dlopen()
void* dlopen (const char * filename, int flags )
Description:
Opens a DLL and returns its handle.
Parameters:
filename | Indicates the pointer to the file name of the DLL. |
flags | Indicates the flag of the DLL to be loaded. |
Returns:
Returns the DLL handle if the operation is successful; returns NULL if the operation fails.
dlsym()
void* dlsym (void * handle, const char * symbol )
Description:
Searches for a specified symbol based on the DLL handle.
You can also use this function to obtain the loading addresses of global variables.
Parameters:
handle | Indicates the loaded DLL handle. |
symbol | Indicates the symbol name. |
Returns:
Returns the symbol address if the operation is successful; returns NULL if the operation fails.