/Haskell 7


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 Terminal support

Terminal support

Terminal attributes

data TerminalAttributes Source

getTerminalAttributes :: Fd -> IO TerminalAttributes Source

getTerminalAttributes fd calls tcgetattr to obtain the TerminalAttributes associated with Fd fd.

data TerminalState Source

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.

data TerminalMode Source

withoutMode :: TerminalAttributes -> TerminalMode -> TerminalAttributes Source

withMode :: TerminalAttributes -> TerminalMode -> TerminalAttributes Source

terminalMode :: TerminalMode -> TerminalAttributes -> Bool Source

bitsPerByte :: TerminalAttributes -> Int Source

withBits :: TerminalAttributes -> Int -> TerminalAttributes Source

data ControlCharacter Source

controlChar :: TerminalAttributes -> ControlCharacter -> Maybe Char Source

withCC :: TerminalAttributes -> (ControlCharacter, Char) -> TerminalAttributes Source

withoutCC :: TerminalAttributes -> ControlCharacter -> TerminalAttributes Source

inputTime :: TerminalAttributes -> Int Source

withTime :: TerminalAttributes -> Int -> TerminalAttributes Source

minInput :: TerminalAttributes -> Int Source

withMinInput :: TerminalAttributes -> Int -> TerminalAttributes Source

data BaudRate Source

inputSpeed :: TerminalAttributes -> BaudRate Source

withInputSpeed :: TerminalAttributes -> BaudRate -> TerminalAttributes Source

outputSpeed :: TerminalAttributes -> BaudRate Source

withOutputSpeed :: TerminalAttributes -> BaudRate -> TerminalAttributes Source

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.

data QueueSelector Source

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.

data FlowAction Source










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 -> IO ProcessGroupID Source

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 -> IO Bool Source

queryTerminal fd calls isatty to determine whether or not Fd fd is associated with a terminal.

getTerminalName :: Fd -> IO RawFilePath Source

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 RawFilePath Source

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 -> IO RawFilePath Source

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.

© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).