Haiku book: Add documentation for dlfcn.h
Change-Id: I72da1e84dd31ee3fe923a55163da10a37de8b207 Reviewed-on: https://review.haiku-os.org/c/haiku/+/9451 Reviewed-by: waddlesplash <[email protected]> Tested-by: Commit checker robot <[email protected]>
This commit is contained in:
committed by
Adrien Destugues
parent
d27a926578
commit
b57c6ae0f4
@@ -0,0 +1,57 @@
|
||||
/*
|
||||
* Copyright 2025 Haiku, Inc. All rights reserved.
|
||||
* Distributed under the terms of the MIT license.
|
||||
*
|
||||
* Authors:
|
||||
* Adrien Destugues, [email protected]
|
||||
*
|
||||
* Corresponds to:
|
||||
* headers/posix/dlfcn/h hrev58958
|
||||
*/
|
||||
|
||||
/*!
|
||||
\file dlfcn.h
|
||||
\ingroup libroot
|
||||
\brief Dynamic shared library loading
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn void* dlopen(const char* file, int flags)
|
||||
\brief Open a shared library symbol table handle.
|
||||
|
||||
Refer to the POSIX specification for the full specification. This page only documents Haiku
|
||||
specific behavior.
|
||||
|
||||
The following are left implementation defined by POSIX:
|
||||
|
||||
- If the "file" argument does not contain a slash character, it will be handled as a file name
|
||||
to be searched in a list of directories set by the LIBRARY_PATH environment variable. That
|
||||
variable is a list of path separated by colon characters. If one of the paths contains the
|
||||
sequence %A, that is replaced with the directory where the currently running executable is
|
||||
stored.
|
||||
- If neither RTLD_LOCAL or RTLD_GLOBAL is defined, RTLD_LOCAL is the default.
|
||||
|
||||
In addition to the POSIX standard flags, dlopen supports the following extended flags:
|
||||
|
||||
- RTLD_NOLOAD: do not load the shared object if it is not already loaded in the current program
|
||||
address space. Only return a valid handle if the library is already loaded by other means
|
||||
such as a previous call to dlopen or the runtime_loader symbol resolution at program startup.
|
||||
- RTLD_GROUP: do not use existing symbols from already loaded libraries to resolve dependencies
|
||||
from the loaded library. The library must explicitly link to all other libraries it needs.
|
||||
These may provide symbols with the same name as other symbols from already loaded libraries
|
||||
without interfering.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn void* dlsym(void* image, const char* symbolName)
|
||||
\brief get the address of a symbol from a shared library.
|
||||
|
||||
Refer to the POSIX specification for the full specification. This page only documents Haiku
|
||||
specific behavior.
|
||||
|
||||
The following values are accepted for the image parameter in addition to handles obtained
|
||||
through calls to dlopen (these are currently "reserved for future use" in POSIX):
|
||||
|
||||
- RTLD_DEFAULT: find the symbol in the global scope
|
||||
- RTLD_NEXT: find the next definition of the symbol
|
||||
*/
|
||||
Reference in New Issue
Block a user