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 RTLDFlags
- data DL
- dlopen :: FilePath -> [RTLDFlags] -> IO DL
- dlsym :: DL -> String -> IO (FunPtr a)
- dlerror :: IO String
- dlclose :: DL -> IO ()
- withDL :: String -> [RTLDFlags] -> (DL -> IO a) -> IO a
- withDL_ :: String -> [RTLDFlags] -> (DL -> IO a) -> IO ()
- undl :: DL -> Ptr ()
- 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
- packDL :: DL -> Ptr ()
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
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
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 #