Since:

1.0

Version:

1.0

File Name

Description

## Macros

Macro Name and Value

Description

RTLD_LAZY    1

All undefined symbols in the shared object are not resolved before dlopen() returns.

RTLD_NOW    2

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.

RTLD_NODELETE    4096

The shared object is not deleted during dlclose().

RTLD_GLOBAL    256

The symbols defined by the loaded shared object can be resolved by other shared objects opened later.

RTLD_LOCAL    0

The symbols defined by the loaded shared object cannot be resolved by other shared objects opened later.

RTLD_NEXT    ((void )-1)

The next match of the required symbol is searched in the search order after the current object.

RTLD_DEFAULT    ((void )0)

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

Function Name

Description

dlclose (void handle)

int

Closes the DLL of a specified handle.

dlerror (void)

char

Obtains the latest error that occurred during a DLL function execution failure.

dlopen (const char filename, int flags)

void

Opens a DLL and returns its handle.

dlsym (void handle, const char symbol)

void *

Searches for a specified symbol based on the DLL handle.

## dlclose()

int dlclose (void* handle)

Description:

Closes the DLL of a specified handle.

Parameters:

Name

Description

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 (constchar* filename,int flags )

Description:

Opens a DLL and returns its handle.

Parameters:

Name

Description

filenameIndicates the pointer to the file name of the DLL.
flagsIndicates 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,constchar* symbol )

Description:

Searches for a specified symbol based on the DLL handle.