Struct libloading::os::unix::Library [−][src]
pub struct Library { /* fields omitted */ }
Expand description
A platform-specific equivalent of the cross-platform Library
.
Implementations
Find and load a shared library (module).
Locations where library is searched for is platform specific and can’t be adjusted portably.
Corresponds to dlopen(filename, RTLD_NOW)
.
Load the dynamic libraries linked into main program.
This allows retrieving symbols from any dynamic library linked into the program, without specifying the exact library.
Corresponds to dlopen(NULL, RTLD_NOW)
.
Find and load a shared library (module).
Locations where library is searched for is platform specific and can’t be adjusted portably.
If the filename
is None, null pointer is passed to dlopen
.
Corresponds to dlopen(filename, flags)
.
Get a pointer to function or static variable by symbol name.
The symbol
may not contain any null bytes, with an exception of last byte. A null
terminated symbol
may avoid a string allocation in some cases.
Symbol is interpreted as-is; no mangling is done. This means that symbols like x::y
are
most likely invalid.
Unsafety
Pointer to a value of arbitrary type is returned. Using a value with wrong type is undefined.
Platform-specific behaviour
OS X uses some sort of lazy initialization scheme, which makes loading TLS variables impossible. Using a TLS variable loaded this way on OS X is undefined behaviour.
Convert the Library
to a raw handle.
The handle returned by this function shall be usable with APIs which accept handles
as returned by dlopen
.
Convert a raw handle returned by dlopen
-family of calls to a Library
.
Unsafety
The pointer shall be a result of a successful call of the dlopen
-family of functions or a
pointer previously returned by Library::into_raw
call. It must be valid to call dlclose
with this pointer as an argument.