unix-2.3.1.0: POSIX functionalityContentsIndex
System.Posix.Terminal
Portabilitynon-portable (requires POSIX)
Stabilityprovisional
Maintainerlibraries@haskell.org
Contents
Terminal support
Terminal attributes
Terminal operations
Process groups
Testing a file descriptor
Pseudoterminal operations
Description
POSIX Terminal support
Synopsis
data TerminalAttributes
getTerminalAttributes :: Fd -> IO TerminalAttributes
data TerminalState
= Immediately
| WhenDrained
| WhenFlushed
setTerminalAttributes :: Fd -> TerminalAttributes -> TerminalState -> IO ()
data TerminalMode
= 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
data ControlCharacter
= EndOfFile
| EndOfLine
| Erase
| Interrupt
| Kill
| Quit
| Start
| Stop
| Suspend
controlChar :: TerminalAttributes -> ControlCharacter -> Maybe Char
withCC :: TerminalAttributes -> (ControlCharacter, Char) -> TerminalAttributes
withoutCC :: TerminalAttributes -> ControlCharacter -> TerminalAttributes
inputTime :: TerminalAttributes -> Int
withTime :: TerminalAttributes -> Int -> TerminalAttributes
minInput :: TerminalAttributes -> Int
withMinInput :: TerminalAttributes -> Int -> TerminalAttributes
data BaudRate
= B0
| B50
| B75
| B110
| B134
| B150
| B200
| B300
| B600
| B1200
| B1800
| B2400
| B4800
| B9600
| B19200
| B38400
| B57600
| B115200
inputSpeed :: TerminalAttributes -> BaudRate
withInputSpeed :: TerminalAttributes -> BaudRate -> TerminalAttributes
outputSpeed :: TerminalAttributes -> BaudRate
withOutputSpeed :: TerminalAttributes -> BaudRate -> TerminalAttributes
sendBreak :: Fd -> Int -> IO ()
drainOutput :: Fd -> IO ()
data QueueSelector
= InputQueue
| OutputQueue
| BothQueues
discardData :: Fd -> QueueSelector -> IO ()
data FlowAction
= SuspendOutput
| RestartOutput
| TransmitStop
| TransmitStart
controlFlow :: Fd -> FlowAction -> IO ()
getTerminalProcessGroupID :: Fd -> IO ProcessGroupID
setTerminalProcessGroupID :: Fd -> ProcessGroupID -> IO ()
queryTerminal :: Fd -> IO Bool
getTerminalName :: Fd -> IO FilePath
getControllingTerminalName :: IO FilePath
openPseudoTerminal :: IO (Fd, Fd)
getSlaveTerminalName :: Fd -> IO FilePath
Terminal support
Terminal attributes
data TerminalAttributes
getTerminalAttributes :: Fd -> IO TerminalAttributes
getTerminalAttributes fd calls tcgetattr to obtain the TerminalAttributes associated with Fd fd.
data TerminalState
Constructors
Immediately
WhenDrained
WhenFlushed
setTerminalAttributes :: Fd -> TerminalAttributes -> TerminalState -> IO ()
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.
data TerminalMode
Constructors
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
data ControlCharacter
Constructors
EndOfFile
EndOfLine
Erase
Interrupt
Kill
Quit
Start
Stop
Suspend
controlChar :: TerminalAttributes -> ControlCharacter -> Maybe Char
withCC :: TerminalAttributes -> (ControlCharacter, Char) -> TerminalAttributes
withoutCC :: TerminalAttributes -> ControlCharacter -> TerminalAttributes
inputTime :: TerminalAttributes -> Int
withTime :: TerminalAttributes -> Int -> TerminalAttributes
minInput :: TerminalAttributes -> Int
withMinInput :: TerminalAttributes -> Int -> TerminalAttributes
data BaudRate
Constructors
B0
B50
B75
B110
B134
B150
B200
B300
B600
B1200
B1800
B2400
B4800
B9600
B19200
B38400
B57600
B115200
inputSpeed :: TerminalAttributes -> BaudRate
withInputSpeed :: TerminalAttributes -> BaudRate -> TerminalAttributes
outputSpeed :: TerminalAttributes -> BaudRate
withOutputSpeed :: TerminalAttributes -> BaudRate -> TerminalAttributes
Terminal operations
sendBreak :: Fd -> Int -> IO ()
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 ()
drainOutput fd calls tcdrain to block until all output written to Fd fd has been transmitted.
data QueueSelector
Constructors
InputQueue
OutputQueue
BothQueues
discardData :: Fd -> QueueSelector -> IO ()
discardData fd queues calls tcflush to discard pending input and/or output for Fd fd, as indicated by the QueueSelector queues.
data FlowAction
Constructors
SuspendOutputTCOOFF
RestartOutputTCOON
TransmitStopTCIOFF
TransmitStartTCION
controlFlow :: Fd -> FlowAction -> IO ()
controlFlow fd action calls tcflow to control the flow of data on Fd fd, as indicated by action.
Process groups
getTerminalProcessGroupID :: Fd -> IO ProcessGroupID
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 ()
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 -> IO Bool
queryTerminal fd calls isatty to determine whether or not Fd fd is associated with a terminal.
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.
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.
Pseudoterminal operations
openPseudoTerminal :: IO (Fd, Fd)
openPseudoTerminal creates a pseudoterminal (pty) pair, and returns the newly created pair as a (master, slave) tuple.
getSlaveTerminalName :: Fd -> IO FilePath
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.
Produced by Haddock version 2.3.0