# Shared library handling

libuv provides cross platform utilities for loading shared libraries and retrieving symbols from them, using the following API.

## Data types

type uv_lib_t

  Shared library data type.

### Public members

N/A

## API

int uv_dlopen(const char *filename, uv_lib_t *lib)

  Opens a shared library. The filename is in utf-8. Returns 0 on success and -1 on error. Call `uv_dlerror()` to get the error message.

void uv_dlclose(uv_lib_t *lib)

  Close the shared library.

int uv_dlsym(uv_lib_t *lib, const char *name, void **ptr)

  Retrieves a data pointer from a dynamic library. It is legal for a symbol to map to NULL. Returns 0 on success and -1 if the symbol was not found.

const char *uv_dlerror(const uv_lib_t *lib)

  Returns the last uv_dlopen() or uv_dlsym() error message.