Copyright | 2008 David Roundy <droundy@darcs.net> |
---|---|
License | GPL |
Maintainer | darcs-devel@darcs.net |
Stability | experimental |
Portability | portable |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Synopsis
- setExecutable :: FilePath -> Bool -> IO ()
- getCurrentDirectory :: IO FilePath
- installHandler :: Signal -> Handler -> Maybe SignalSet -> IO Handler
- raiseSignal :: Signal -> IO ()
- data Handler
- = Default
- | Ignore
- | Catch (IO ())
- | CatchOnce (IO ())
- | CatchInfo (SignalInfo -> IO ())
- | CatchInfoOnce (SignalInfo -> IO ())
- type Signal = CInt
- sigINT :: CInt
- sigHUP :: CInt
- sigABRT :: CInt
- sigALRM :: CInt
- sigTERM :: CInt
- sigPIPE :: CInt
Documentation
getCurrentDirectory :: IO FilePath #
Obtain the current working directory as an absolute path.
In a multithreaded program, the current working directory is a global state
shared among all threads of the process. Therefore, when performing
filesystem operations from multiple threads, it is highly recommended to
use absolute rather than relative paths (see: makeAbsolute
).
Note that getCurrentDirectory
is not guaranteed to return the same path
received by setCurrentDirectory
. On POSIX systems, the path returned will
always be fully dereferenced (not contain any symbolic links). For more
information, refer to the documentation of
getcwd.
The operation may fail with:
HardwareFault
A physical I/O error has occurred.[EIO]
isDoesNotExistError
There is no path referring to the working directory.[EPERM, ENOENT, ESTALE...]
isPermissionError
The process has insufficient privileges to perform the operation.[EACCES]
isFullError
Insufficient resources are available to perform the operation.UnsupportedOperation
The operating system has no notion of current working directory.
installHandler int handler iset
calls sigaction
to install an
interrupt handler for signal int
. If handler
is Default
,
SIG_DFL
is installed; if handler
is Ignore
, SIG_IGN
is
installed; if handler
is Catch action
, a handler is installed
which will invoke action
in a new thread when (or shortly after) the
signal is received.
If iset
is Just s
, then the sa_mask
of the sigaction
structure
is set to s
; otherwise it is cleared. The previously installed
signal handler for int
is returned
raiseSignal :: Signal -> IO () #
raiseSignal int
calls kill
to signal the current process
with interrupt signal int
.
The actions to perform when a signal is received.
Default | Sets the disposition of the signal to |
Ignore | Set the disposition of the signal to |
Catch (IO ()) | signal handler is not reset |
CatchOnce (IO ()) | signal handler is automatically reset (via |
CatchInfo (SignalInfo -> IO ()) | Since: unix-2.7.0.0 |
CatchInfoOnce (SignalInfo -> IO ()) | Since: unix-2.7.0.0 |