System.Posix.Terminal

Copyright (c) The University of Glasgow 2002
License BSD-style (see the file libraries/base/LICENSE)
Maintainer [email protected]
Stability provisional
Portability non-portable (requires POSIX)
Safe Haskell Safe
Language Haskell2010

Description

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.

Throws IOError ("unsupported operation") if platform does not provide tcdrain(3) (use #if HAVE_TCDRAIN CPP guard to detect availability).

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

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 -> 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 FilePath 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 FilePath 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.

Throws IOError ("unsupported operation") if platform does not provide ctermid(3) (use #if HAVE_CTERMID CPP guard to detect availability).

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 FilePath 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).
https://downloads.haskell.org/~ghc/8.10.2/docs/html/libraries/unix-2.7.2.2/System-Posix-Terminal.html