Copyright | (c) The University of Glasgow 2002 |
---|---|
License | BSD-style (see the file libraries/base/LICENSE) |
Maintainer | libraries@haskell.org |
Stability | provisional |
Portability | non-portable (requires POSIX) |
Safe Haskell | Safe |
Language | Haskell2010 |
POSIX.1-2008 support
Synopsis
- module System.Posix.Types
- module System.Posix.Signals
- module System.Posix.Directory
- module System.Posix.Files
- module System.Posix.Unistd
- module System.Posix.IO
- module System.Posix.Env
- module System.Posix.Process
- module System.Posix.Temp
- module System.Posix.Terminal
- module System.Posix.Time
- module System.Posix.User
- module System.Posix.Resource
- module System.Posix.Semaphore
- module System.Posix.SharedMem
- data DL
-
data
RTLDFlags
- = RTLD_LAZY
- | RTLD_NOW
- | RTLD_GLOBAL
- | RTLD_LOCAL
- c_dlclose :: Ptr () -> IO CInt
- c_dlerror :: IO CString
- c_dlsym :: Ptr () -> CString -> IO ( FunPtr a)
- c_dlopen :: CString -> CInt -> IO ( Ptr ())
- haveRtldNext :: Bool
- haveRtldLocal :: Bool
- packRTLDFlags :: [ RTLDFlags ] -> CInt
- packDL :: DL -> Ptr ()
- dlclose :: DL -> IO ()
- dlerror :: IO String
- dlsym :: DL -> String -> IO ( FunPtr a)
- undl :: DL -> Ptr ()
- dlopen :: FilePath -> [ RTLDFlags ] -> IO DL
- withDL :: String -> [ RTLDFlags ] -> ( DL -> IO a) -> IO a
- withDL_ :: String -> [ RTLDFlags ] -> ( DL -> IO a) -> IO ()
Documentation
module System.Posix.Types
module System.Posix.Signals
module System.Posix.Directory
module System.Posix.Files
module System.Posix.Unistd
module System.Posix.IO
module System.Posix.Env
module System.Posix.Process
module System.Posix.Temp
module System.Posix.Terminal
module System.Posix.Time
module System.Posix.User
module System.Posix.Resource
module System.Posix.Semaphore
module System.Posix.SharedMem
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 #
dlsym :: DL -> String -> IO ( FunPtr a) Source #
dlsym
returns the address binding of the symbol described in
symbol
,
as it occurs in the shared object identified by
source
.
undl
obtains the raw handle. You mustn't do something like
withDL mod flags $ liftM undl >>= p -> use p