Portability | non-portable (requires POSIX) |
---|---|
Stability | provisional |
Maintainer | libraries@haskell.org |
System.Posix.Terminal
Contents
Description
POSIX Terminal support
- dataTerminalAttributes
- getTerminalAttributes :: Fd -> IOTerminalAttributes
- dataTerminalState
- setTerminalAttributes :: Fd -> TerminalAttributes -> TerminalState -> IO()
- dataTerminalMode
- = InterruptOnBreak
- | MapCRtoLF
- | IgnoreBreak
- | IgnoreCR
- | IgnoreParityErrors
- | MapLFtoCR
- | CheckParity
- | StripHighBit
- | StartStopInput
- | StartStopOutput
- | MarkParityErrors
- | ProcessOutput
- | LocalMode
- | ReadEnable
- | TwoStopBits
- | HangupOnClose
- | EnableParity
- | OddParity
- | EnableEcho
- | EchoErase
- | EchoKill
- | EchoLF
- | ProcessInput
- | ExtendedFunctions
- | KeyboardInterrupts
- | NoFlushOnInterrupt
- | BackgroundWriteInterrupt
- withoutMode :: TerminalAttributes -> TerminalMode -> TerminalAttributes
- withMode :: TerminalAttributes -> TerminalMode -> TerminalAttributes
- terminalMode :: TerminalMode -> TerminalAttributes -> Bool
- bitsPerByte :: TerminalAttributes -> Int
- withBits :: TerminalAttributes -> Int -> TerminalAttributes
- dataControlCharacter
- controlChar :: TerminalAttributes -> ControlCharacter -> MaybeChar
- withCC :: TerminalAttributes -> (ControlCharacter, Char) -> TerminalAttributes
- withoutCC :: TerminalAttributes -> ControlCharacter -> TerminalAttributes
- inputTime :: TerminalAttributes -> Int
- withTime :: TerminalAttributes -> Int -> TerminalAttributes
- minInput :: TerminalAttributes -> Int
- withMinInput :: TerminalAttributes -> Int -> TerminalAttributes
- dataBaudRate
- inputSpeed :: TerminalAttributes -> BaudRate
- withInputSpeed :: TerminalAttributes -> BaudRate -> TerminalAttributes
- outputSpeed :: TerminalAttributes -> BaudRate
- withOutputSpeed :: TerminalAttributes -> BaudRate -> TerminalAttributes
- sendBreak :: Fd -> Int -> IO()
- drainOutput :: Fd -> IO()
- dataQueueSelector
- discardData :: Fd -> QueueSelector -> IO()
- dataFlowAction
- controlFlow :: Fd -> FlowAction -> IO()
- getTerminalProcessGroupID :: Fd -> IOProcessGroupID
- setTerminalProcessGroupID :: Fd -> ProcessGroupID -> IO()
- queryTerminal :: Fd -> IOBool
- getTerminalName :: Fd -> IOFilePath
- getControllingTerminalName :: IOFilePath
- openPseudoTerminal :: IO (Fd, Fd)
- getSlaveTerminalName :: Fd -> IOFilePath
Terminal support
Terminal attributes
getTerminalAttributes :: Fd -> IOTerminalAttributesSource
getTerminalAttributes fd
calls tcgetattr
to obtain the TerminalAttributes
associated with Fd
fd
.
Constructors
Immediately | |
WhenDrained | |
WhenFlushed |
setTerminalAttributes :: Fd -> TerminalAttributes -> TerminalState -> IO()Source
setTerminalAttributes fd attr ts
calls tcsetattr
to change the TerminalAttributes
associated with Fd
fd
to attr
, when the terminal is in the state indicated by ts
.
Constructors
Terminal operations
sendBreak :: Fd -> Int -> IO()Source
sendBreak fd duration
calls tcsendbreak
to transmit a continuous stream of zero-valued bits on Fd
fd
for the specified implementation-dependent duration
.
drainOutput :: Fd -> IO()Source
drainOutput fd
calls tcdrain
to block until all output written to Fd
fd
has been transmitted.
Constructors
InputQueue | |
OutputQueue | |
BothQueues |
discardData :: Fd -> QueueSelector -> IO()Source
discardData fd queues
calls tcflush
to discard pending input and/or output for Fd
fd
, as indicated by the QueueSelector
queues
.
dataFlowActionSource
Constructors
SuspendOutput | TCOOFF |
RestartOutput | TCOON |
TransmitStop | TCIOFF |
TransmitStart | TCION |
controlFlow :: Fd -> FlowAction -> IO()Source
controlFlow fd action
calls tcflow
to control the flow of data on Fd
fd
, as indicated by action
.
Process groups
getTerminalProcessGroupID :: Fd -> IOProcessGroupIDSource
getTerminalProcessGroupID fd
calls tcgetpgrp
to obtain the ProcessGroupID
of the foreground process group associated with the terminal attached to Fd
fd
.
setTerminalProcessGroupID :: Fd -> ProcessGroupID -> IO()Source
setTerminalProcessGroupID fd pgid
calls tcsetpgrp
to set the ProcessGroupID
of the foreground process group associated with the terminal attached to Fd
fd
to pgid
.
Testing a file descriptor
queryTerminal :: Fd -> IOBoolSource
queryTerminal fd
calls isatty
to determine whether or not Fd
fd
is associated with a terminal.
getTerminalName :: Fd -> IOFilePathSource
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.
getControllingTerminalName :: IOFilePathSource
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.
Pseudoterminal operations
openPseudoTerminal :: IO (Fd, Fd)Source
openPseudoTerminal
creates a pseudoterminal (pty) pair, and returns the newly created pair as a (master
, slave
) tuple.
getSlaveTerminalName :: Fd -> IOFilePathSource
getSlaveTerminalName
calls ptsname
to obtain the name of the slave terminal associated with a pseudoterminal pair. The file descriptor to pass in must be that of the master.