Copyright | (c) Volker Stolz <vs@foldr.org> 2003 |
---|---|
License | BSD-style (see the file libraries/base/LICENSE) |
Maintainer | vs@foldr.org |
Stability | provisional |
Portability | non-portable (requires POSIX) |
Safe Haskell | Trustworthy |
Language | Haskell2010 |
dlopen(3)
and friends
Derived from
GModule.chs
by M.Weber & M.Chakravarty which is part of c2hs.
I left the API more or less the same, mostly the flags are different.
Synopsis
- c_dlopen :: CString -> CInt -> IO ( Ptr ())
- c_dlsym :: Ptr () -> CString -> IO ( FunPtr a)
- c_dlerror :: IO CString
- c_dlclose :: Ptr () -> IO CInt
- haveRtldNext :: Bool
- haveRtldLocal :: Bool
- packRTLDFlags :: [ RTLDFlags ] -> CInt
-
data
RTLDFlags
- = RTLD_LAZY
- | RTLD_NOW
- | RTLD_GLOBAL
- | RTLD_LOCAL
- packDL :: DL -> Ptr ()
- data DL
low level API
haveRtldNext :: Bool Source #
On some hosts (e.g. SuSe and Ubuntu Linux)
RTLD_NEXT
(and
RTLD_DEFAULT
) are not visible without setting the macro
_GNU_SOURCE
. Since we don't want to define this macro, you can use
the function
haveRtldNext
to check wether the flag
Next
is
available. Ideally, this will be optimized by the compiler so that it
should be as efficient as an
#ifdef
.
If you fail to test the flag and use it although it is undefined,
packDL
will throw an error.
haveRtldLocal :: Bool Source #
Deprecated: defaults to True
packRTLDFlags :: [ RTLDFlags ] -> CInt Source #