getProcessID :: IO ProcessID
getProcessID calls getpid to obtain the ProcessID for the current process.
getParentProcessID :: IO ProcessID
getProcessID calls getppid to obtain the ProcessID for the parent of the current process.
getRealUserID :: IO UserID
getRealUserID calls getuid to obtain the real UserID associated with the current process.
getEffectiveUserID :: IO UserID
getRealUserID calls geteuid to obtain the effective UserID associated with the current process.
setUserID :: UserID -> IO ()
setUserID uid calls setuid to set the real, effective, and saved set-user-id associated with the current process to uid.
getLoginName :: IO String
getLoginName calls getlogin to obtain the login name associated with the current process.
getRealGroupID :: IO GroupID
getRealGroupID calls getgid to obtain the real GroupID associated with the current process.
getEffectiveGroupID :: IO GroupID
getEffectiveGroupID calls getegid to obtain the effective GroupID associated with the current process.
setGroupID :: GroupID -> IO ()
setGroupID gid calls setgid to set the real, effective, and saved set-group-id associated with the current process to gid.
getGroups :: IO [GroupID]
getGroups calls getgroups to obtain the list of supplementary GroupIDs associated with the current process.
getEffectiveUserName :: IO String
getEffectiveUserName calls cuserid to obtain a name associated with the effective UserID of the process.
getProcessGroupID :: IO ProcessGroupID
getProcessGroupID calls getpgrp to obtain the ProcessGroupID for the current process.
createProcessGroup :: ProcessID -> IO ProcessGroupID
createProcessGroup pid calls setpgid to make process pid a new process group leader.
joinProcessGroup :: ProcessGroupID -> IO ProcessGroupID
joinProcessGroup pgid calls setpgid to set the ProcessGroupID of the current process to pgid.
setProcessGroupID :: ProcessID -> ProcessGroupID -> IO ()
setProcessGroupID pid pgid calls setpgid to set the ProcessGroupID for process pid to pgid.
createSession :: IO ProcessGroupID
createSession calls setsid to create a new session with the current process as session leader.
systemName :: SystemID -> String nodeName :: SystemID -> String release :: SystemID -> String version :: SystemID -> String machine :: SystemID -> String getSystemID :: IO SystemID
getSystemID calls uname to obtain information about the current operating system.
> epochTime :: IO EpochTime
epochTime calls time to obtain the number of seconds that have elapsed since the epoch (Jan 01 00:00:00 GMT 1970).
elapsedTime :: ProcessTimes -> ClockTick userTime :: ProcessTimes -> ClockTick systemTime :: ProcessTimes -> ClockTick childUserTime :: ProcessTimes -> ClockTick childSystemTime :: ProcessTimes -> ClockTick getProcessTimes :: IO ProcessTimes
getProcessTimes calls times to obtain time-accounting information for the current process and its children.
getControllingTerminalName :: IO FilePath
getControllingTerminalName calls ctermid to obtain a name associated with the controlling terminal for the process. If a controlling terminal exists, getControllingTerminalName returns the name of the controlling terminal.
The operation may fail with:
There is no controlling terminal, or its name cannot be determined.
Various other causes.
getTerminalName :: Fd -> IO FilePath
getTerminalName fd calls ttyname to obtain a name associated with the terminal for Fd fd. If fd is associated with a terminal, getTerminalName returns the name of the terminal.
The operation may fail with:
The channel is not associated with a terminal.
The channel is associated with a terminal, but it has no name.
Various other causes.
queryTerminal :: Fd -> IO Bool
queryTerminal fd calls isatty to determine whether or not Fd fd is associated with a terminal.
getSysVar :: SysVar -> IO Limit
getSysVar var calls sysconf to obtain the dynamic value of the requested configurable system limit or option. For defined system limits, getSysVar returns the associated value. For defined system options, the result of getSysVar is undefined, but not failure.
The operation may fail with:
The requested system limit or option is undefined.