<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!--Rendered using the Haskell Html Library v0.2--> <HTML ><HEAD ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8" ><TITLE >System.Posix.Terminal</TITLE ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css" ><SCRIPT SRC="haddock-util.js" TYPE="text/javascript" ></SCRIPT ><SCRIPT TYPE="text/javascript" >window.onload = function () {setSynopsis("mini_System-Posix-Terminal.html")};</SCRIPT ></HEAD ><BODY ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="topbar" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title" >unix-2.3.2.0: POSIX functionality</TD ><TD CLASS="topbut" ><A HREF="index.html" >Contents</A ></TD ><TD CLASS="topbut" ><A HREF="doc-index.html" >Index</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="modulebar" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD ><FONT SIZE="6" >System.Posix.Terminal</FONT ></TD ><TD ALIGN="right" ><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="infohead" >Portability</TD ><TD CLASS="infoval" >non-portable (requires POSIX)</TD ></TR ><TR ><TD CLASS="infohead" >Stability</TD ><TD CLASS="infoval" >provisional</TD ></TR ><TR ><TD CLASS="infohead" >Maintainer</TD ><TD CLASS="infoval" >libraries@haskell.org</TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="section4" ><B >Contents</B ></TD ></TR ><TR ><TD ><DL ><DT ><A HREF="#1" >Terminal support </A ></DT ><DD ><DL ><DT ><A HREF="#2" >Terminal attributes </A ></DT ><DT ><A HREF="#3" >Terminal operations </A ></DT ><DT ><A HREF="#4" >Process groups </A ></DT ><DT ><A HREF="#5" >Testing a file descriptor </A ></DT ><DT ><A HREF="#6" >Pseudoterminal operations </A ></DT ></DL ></DD ></DL ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Description</TD ></TR ><TR ><TD CLASS="doc" >POSIX Terminal support </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Synopsis</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3ATerminalAttributes" >TerminalAttributes</A > </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AgetTerminalAttributes" >getTerminalAttributes</A > :: <A HREF="../base/System-Posix-Types.html#t%3AFd" >Fd</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="System-Posix-Terminal.html#t%3ATerminalAttributes" >TerminalAttributes</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3ATerminalState" >TerminalState</A > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" >= <A HREF="#v%3AImmediately" >Immediately</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AWhenDrained" >WhenDrained</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AWhenFlushed" >WhenFlushed</A ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsetTerminalAttributes" >setTerminalAttributes</A > :: <A HREF="../base/System-Posix-Types.html#t%3AFd" >Fd</A > -> <A HREF="System-Posix-Terminal.html#t%3ATerminalAttributes" >TerminalAttributes</A > -> <A HREF="System-Posix-Terminal.html#t%3ATerminalState" >TerminalState</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3ATerminalMode" >TerminalMode</A > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" >= <A HREF="#v%3AInterruptOnBreak" >InterruptOnBreak</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AMapCRtoLF" >MapCRtoLF</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AIgnoreBreak" >IgnoreBreak</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AIgnoreCR" >IgnoreCR</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AIgnoreParityErrors" >IgnoreParityErrors</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AMapLFtoCR" >MapLFtoCR</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ACheckParity" >CheckParity</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AStripHighBit" >StripHighBit</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AStartStopInput" >StartStopInput</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AStartStopOutput" >StartStopOutput</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AMarkParityErrors" >MarkParityErrors</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AProcessOutput" >ProcessOutput</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ALocalMode" >LocalMode</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AReadEnable" >ReadEnable</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ATwoStopBits" >TwoStopBits</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AHangupOnClose" >HangupOnClose</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AEnableParity" >EnableParity</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AOddParity" >OddParity</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AEnableEcho" >EnableEcho</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AEchoErase" >EchoErase</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AEchoKill" >EchoKill</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AEchoLF" >EchoLF</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AProcessInput" >ProcessInput</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AExtendedFunctions" >ExtendedFunctions</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AKeyboardInterrupts" >KeyboardInterrupts</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ANoFlushOnInterrupt" >NoFlushOnInterrupt</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ABackgroundWriteInterrupt" >BackgroundWriteInterrupt</A ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AwithoutMode" >withoutMode</A > :: <A HREF="System-Posix-Terminal.html#t%3ATerminalAttributes" >TerminalAttributes</A > -> <A HREF="System-Posix-Terminal.html#t%3ATerminalMode" >TerminalMode</A > -> <A HREF="System-Posix-Terminal.html#t%3ATerminalAttributes" >TerminalAttributes</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AwithMode" >withMode</A > :: <A HREF="System-Posix-Terminal.html#t%3ATerminalAttributes" >TerminalAttributes</A > -> <A HREF="System-Posix-Terminal.html#t%3ATerminalMode" >TerminalMode</A > -> <A HREF="System-Posix-Terminal.html#t%3ATerminalAttributes" >TerminalAttributes</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AterminalMode" >terminalMode</A > :: <A HREF="System-Posix-Terminal.html#t%3ATerminalMode" >TerminalMode</A > -> <A HREF="System-Posix-Terminal.html#t%3ATerminalAttributes" >TerminalAttributes</A > -> <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool" >Bool</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AbitsPerByte" >bitsPerByte</A > :: <A HREF="System-Posix-Terminal.html#t%3ATerminalAttributes" >TerminalAttributes</A > -> <A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AwithBits" >withBits</A > :: <A HREF="System-Posix-Terminal.html#t%3ATerminalAttributes" >TerminalAttributes</A > -> <A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A > -> <A HREF="System-Posix-Terminal.html#t%3ATerminalAttributes" >TerminalAttributes</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3AControlCharacter" >ControlCharacter</A > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" >= <A HREF="#v%3AEndOfFile" >EndOfFile</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AEndOfLine" >EndOfLine</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AErase" >Erase</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AInterrupt" >Interrupt</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AKill" >Kill</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AQuit" >Quit</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AStart" >Start</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AStop" >Stop</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ASuspend" >Suspend</A ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AcontrolChar" >controlChar</A > :: <A HREF="System-Posix-Terminal.html#t%3ATerminalAttributes" >TerminalAttributes</A > -> <A HREF="System-Posix-Terminal.html#t%3AControlCharacter" >ControlCharacter</A > -> <A HREF="../base/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="../ghc-prim/GHC-Types.html#t%3AChar" >Char</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AwithCC" >withCC</A > :: <A HREF="System-Posix-Terminal.html#t%3ATerminalAttributes" >TerminalAttributes</A > -> (<A HREF="System-Posix-Terminal.html#t%3AControlCharacter" >ControlCharacter</A >, <A HREF="../ghc-prim/GHC-Types.html#t%3AChar" >Char</A >) -> <A HREF="System-Posix-Terminal.html#t%3ATerminalAttributes" >TerminalAttributes</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AwithoutCC" >withoutCC</A > :: <A HREF="System-Posix-Terminal.html#t%3ATerminalAttributes" >TerminalAttributes</A > -> <A HREF="System-Posix-Terminal.html#t%3AControlCharacter" >ControlCharacter</A > -> <A HREF="System-Posix-Terminal.html#t%3ATerminalAttributes" >TerminalAttributes</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AinputTime" >inputTime</A > :: <A HREF="System-Posix-Terminal.html#t%3ATerminalAttributes" >TerminalAttributes</A > -> <A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AwithTime" >withTime</A > :: <A HREF="System-Posix-Terminal.html#t%3ATerminalAttributes" >TerminalAttributes</A > -> <A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A > -> <A HREF="System-Posix-Terminal.html#t%3ATerminalAttributes" >TerminalAttributes</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AminInput" >minInput</A > :: <A HREF="System-Posix-Terminal.html#t%3ATerminalAttributes" >TerminalAttributes</A > -> <A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AwithMinInput" >withMinInput</A > :: <A HREF="System-Posix-Terminal.html#t%3ATerminalAttributes" >TerminalAttributes</A > -> <A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A > -> <A HREF="System-Posix-Terminal.html#t%3ATerminalAttributes" >TerminalAttributes</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3ABaudRate" >BaudRate</A > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" >= <A HREF="#v%3AB0" >B0</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AB50" >B50</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AB75" >B75</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AB110" >B110</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AB134" >B134</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AB150" >B150</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AB200" >B200</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AB300" >B300</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AB600" >B600</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AB1200" >B1200</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AB1800" >B1800</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AB2400" >B2400</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AB4800" >B4800</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AB9600" >B9600</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AB19200" >B19200</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AB38400" >B38400</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AB57600" >B57600</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AB115200" >B115200</A ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AinputSpeed" >inputSpeed</A > :: <A HREF="System-Posix-Terminal.html#t%3ATerminalAttributes" >TerminalAttributes</A > -> <A HREF="System-Posix-Terminal.html#t%3ABaudRate" >BaudRate</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AwithInputSpeed" >withInputSpeed</A > :: <A HREF="System-Posix-Terminal.html#t%3ATerminalAttributes" >TerminalAttributes</A > -> <A HREF="System-Posix-Terminal.html#t%3ABaudRate" >BaudRate</A > -> <A HREF="System-Posix-Terminal.html#t%3ATerminalAttributes" >TerminalAttributes</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AoutputSpeed" >outputSpeed</A > :: <A HREF="System-Posix-Terminal.html#t%3ATerminalAttributes" >TerminalAttributes</A > -> <A HREF="System-Posix-Terminal.html#t%3ABaudRate" >BaudRate</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AwithOutputSpeed" >withOutputSpeed</A > :: <A HREF="System-Posix-Terminal.html#t%3ATerminalAttributes" >TerminalAttributes</A > -> <A HREF="System-Posix-Terminal.html#t%3ABaudRate" >BaudRate</A > -> <A HREF="System-Posix-Terminal.html#t%3ATerminalAttributes" >TerminalAttributes</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsendBreak" >sendBreak</A > :: <A HREF="../base/System-Posix-Types.html#t%3AFd" >Fd</A > -> <A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AdrainOutput" >drainOutput</A > :: <A HREF="../base/System-Posix-Types.html#t%3AFd" >Fd</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3AQueueSelector" >QueueSelector</A > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" >= <A HREF="#v%3AInputQueue" >InputQueue</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AOutputQueue" >OutputQueue</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ABothQueues" >BothQueues</A ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AdiscardData" >discardData</A > :: <A HREF="../base/System-Posix-Types.html#t%3AFd" >Fd</A > -> <A HREF="System-Posix-Terminal.html#t%3AQueueSelector" >QueueSelector</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3AFlowAction" >FlowAction</A > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" >= <A HREF="#v%3ASuspendOutput" >SuspendOutput</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ARestartOutput" >RestartOutput</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ATransmitStop" >TransmitStop</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ATransmitStart" >TransmitStart</A ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AcontrolFlow" >controlFlow</A > :: <A HREF="../base/System-Posix-Types.html#t%3AFd" >Fd</A > -> <A HREF="System-Posix-Terminal.html#t%3AFlowAction" >FlowAction</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AgetTerminalProcessGroupID" >getTerminalProcessGroupID</A > :: <A HREF="../base/System-Posix-Types.html#t%3AFd" >Fd</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../base/System-Posix-Types.html#t%3AProcessGroupID" >ProcessGroupID</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsetTerminalProcessGroupID" >setTerminalProcessGroupID</A > :: <A HREF="../base/System-Posix-Types.html#t%3AFd" >Fd</A > -> <A HREF="../base/System-Posix-Types.html#t%3AProcessGroupID" >ProcessGroupID</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AqueryTerminal" >queryTerminal</A > :: <A HREF="../base/System-Posix-Types.html#t%3AFd" >Fd</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool" >Bool</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AgetTerminalName" >getTerminalName</A > :: <A HREF="../base/System-Posix-Types.html#t%3AFd" >Fd</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../base/System-IO.html#t%3AFilePath" >FilePath</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AgetControllingTerminalName" >getControllingTerminalName</A > :: <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../base/System-IO.html#t%3AFilePath" >FilePath</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AopenPseudoTerminal" >openPseudoTerminal</A > :: <A HREF="../base/System-IO.html#t%3AIO" >IO</A > (<A HREF="../base/System-Posix-Types.html#t%3AFd" >Fd</A >, <A HREF="../base/System-Posix-Types.html#t%3AFd" >Fd</A >)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AgetSlaveTerminalName" >getSlaveTerminalName</A > :: <A HREF="../base/System-Posix-Types.html#t%3AFd" >Fd</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../base/System-IO.html#t%3AFilePath" >FilePath</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="1" ><A NAME="1" >Terminal support </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section2" ><A NAME="2" ><A NAME="2" >Terminal attributes </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:TerminalAttributes" ><A NAME="t%3ATerminalAttributes" ></A ></A ><B >TerminalAttributes</B > </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:getTerminalAttributes" ><A NAME="v%3AgetTerminalAttributes" ></A ></A ><B >getTerminalAttributes</B > :: <A HREF="../base/System-Posix-Types.html#t%3AFd" >Fd</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="System-Posix-Terminal.html#t%3ATerminalAttributes" >TerminalAttributes</A ></TD ></TR ><TR ><TD CLASS="doc" ><TT >getTerminalAttributes fd</TT > calls <TT >tcgetattr</TT > to obtain the <TT >TerminalAttributes</TT > associated with <TT >Fd</TT > <TT >fd</TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:TerminalState" ><A NAME="t%3ATerminalState" ></A ></A ><B >TerminalState</B > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="section4" >Constructors</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v:Immediately" ><A NAME="v%3AImmediately" ></A ></A ><B >Immediately</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:WhenDrained" ><A NAME="v%3AWhenDrained" ></A ></A ><B >WhenDrained</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:WhenFlushed" ><A NAME="v%3AWhenFlushed" ></A ></A ><B >WhenFlushed</B ></TD ><TD CLASS="rdoc" ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:setTerminalAttributes" ><A NAME="v%3AsetTerminalAttributes" ></A ></A ><B >setTerminalAttributes</B > :: <A HREF="../base/System-Posix-Types.html#t%3AFd" >Fd</A > -> <A HREF="System-Posix-Terminal.html#t%3ATerminalAttributes" >TerminalAttributes</A > -> <A HREF="System-Posix-Terminal.html#t%3ATerminalState" >TerminalState</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="doc" ><TT >setTerminalAttributes fd attr ts</TT > calls <TT >tcsetattr</TT > to change the <TT >TerminalAttributes</TT > associated with <TT >Fd</TT > <TT >fd</TT > to <TT >attr</TT >, when the terminal is in the state indicated by <TT >ts</TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:TerminalMode" ><A NAME="t%3ATerminalMode" ></A ></A ><B >TerminalMode</B > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="section4" >Constructors</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v:InterruptOnBreak" ><A NAME="v%3AInterruptOnBreak" ></A ></A ><B >InterruptOnBreak</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:MapCRtoLF" ><A NAME="v%3AMapCRtoLF" ></A ></A ><B >MapCRtoLF</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:IgnoreBreak" ><A NAME="v%3AIgnoreBreak" ></A ></A ><B >IgnoreBreak</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:IgnoreCR" ><A NAME="v%3AIgnoreCR" ></A ></A ><B >IgnoreCR</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:IgnoreParityErrors" ><A NAME="v%3AIgnoreParityErrors" ></A ></A ><B >IgnoreParityErrors</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:MapLFtoCR" ><A NAME="v%3AMapLFtoCR" ></A ></A ><B >MapLFtoCR</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:CheckParity" ><A NAME="v%3ACheckParity" ></A ></A ><B >CheckParity</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:StripHighBit" ><A NAME="v%3AStripHighBit" ></A ></A ><B >StripHighBit</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:StartStopInput" ><A NAME="v%3AStartStopInput" ></A ></A ><B >StartStopInput</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:StartStopOutput" ><A NAME="v%3AStartStopOutput" ></A ></A ><B >StartStopOutput</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:MarkParityErrors" ><A NAME="v%3AMarkParityErrors" ></A ></A ><B >MarkParityErrors</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:ProcessOutput" ><A NAME="v%3AProcessOutput" ></A ></A ><B >ProcessOutput</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:LocalMode" ><A NAME="v%3ALocalMode" ></A ></A ><B >LocalMode</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:ReadEnable" ><A NAME="v%3AReadEnable" ></A ></A ><B >ReadEnable</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:TwoStopBits" ><A NAME="v%3ATwoStopBits" ></A ></A ><B >TwoStopBits</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:HangupOnClose" ><A NAME="v%3AHangupOnClose" ></A ></A ><B >HangupOnClose</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:EnableParity" ><A NAME="v%3AEnableParity" ></A ></A ><B >EnableParity</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:OddParity" ><A NAME="v%3AOddParity" ></A ></A ><B >OddParity</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:EnableEcho" ><A NAME="v%3AEnableEcho" ></A ></A ><B >EnableEcho</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:EchoErase" ><A NAME="v%3AEchoErase" ></A ></A ><B >EchoErase</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:EchoKill" ><A NAME="v%3AEchoKill" ></A ></A ><B >EchoKill</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:EchoLF" ><A NAME="v%3AEchoLF" ></A ></A ><B >EchoLF</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:ProcessInput" ><A NAME="v%3AProcessInput" ></A ></A ><B >ProcessInput</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:ExtendedFunctions" ><A NAME="v%3AExtendedFunctions" ></A ></A ><B >ExtendedFunctions</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:KeyboardInterrupts" ><A NAME="v%3AKeyboardInterrupts" ></A ></A ><B >KeyboardInterrupts</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:NoFlushOnInterrupt" ><A NAME="v%3ANoFlushOnInterrupt" ></A ></A ><B >NoFlushOnInterrupt</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:BackgroundWriteInterrupt" ><A NAME="v%3ABackgroundWriteInterrupt" ></A ></A ><B >BackgroundWriteInterrupt</B ></TD ><TD CLASS="rdoc" ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:withoutMode" ><A NAME="v%3AwithoutMode" ></A ></A ><B >withoutMode</B > :: <A HREF="System-Posix-Terminal.html#t%3ATerminalAttributes" >TerminalAttributes</A > -> <A HREF="System-Posix-Terminal.html#t%3ATerminalMode" >TerminalMode</A > -> <A HREF="System-Posix-Terminal.html#t%3ATerminalAttributes" >TerminalAttributes</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:withMode" ><A NAME="v%3AwithMode" ></A ></A ><B >withMode</B > :: <A HREF="System-Posix-Terminal.html#t%3ATerminalAttributes" >TerminalAttributes</A > -> <A HREF="System-Posix-Terminal.html#t%3ATerminalMode" >TerminalMode</A > -> <A HREF="System-Posix-Terminal.html#t%3ATerminalAttributes" >TerminalAttributes</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:terminalMode" ><A NAME="v%3AterminalMode" ></A ></A ><B >terminalMode</B > :: <A HREF="System-Posix-Terminal.html#t%3ATerminalMode" >TerminalMode</A > -> <A HREF="System-Posix-Terminal.html#t%3ATerminalAttributes" >TerminalAttributes</A > -> <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool" >Bool</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:bitsPerByte" ><A NAME="v%3AbitsPerByte" ></A ></A ><B >bitsPerByte</B > :: <A HREF="System-Posix-Terminal.html#t%3ATerminalAttributes" >TerminalAttributes</A > -> <A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:withBits" ><A NAME="v%3AwithBits" ></A ></A ><B >withBits</B > :: <A HREF="System-Posix-Terminal.html#t%3ATerminalAttributes" >TerminalAttributes</A > -> <A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A > -> <A HREF="System-Posix-Terminal.html#t%3ATerminalAttributes" >TerminalAttributes</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:ControlCharacter" ><A NAME="t%3AControlCharacter" ></A ></A ><B >ControlCharacter</B > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="section4" >Constructors</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v:EndOfFile" ><A NAME="v%3AEndOfFile" ></A ></A ><B >EndOfFile</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:EndOfLine" ><A NAME="v%3AEndOfLine" ></A ></A ><B >EndOfLine</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:Erase" ><A NAME="v%3AErase" ></A ></A ><B >Erase</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:Interrupt" ><A NAME="v%3AInterrupt" ></A ></A ><B >Interrupt</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:Kill" ><A NAME="v%3AKill" ></A ></A ><B >Kill</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:Quit" ><A NAME="v%3AQuit" ></A ></A ><B >Quit</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:Start" ><A NAME="v%3AStart" ></A ></A ><B >Start</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:Stop" ><A NAME="v%3AStop" ></A ></A ><B >Stop</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:Suspend" ><A NAME="v%3ASuspend" ></A ></A ><B >Suspend</B ></TD ><TD CLASS="rdoc" ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:controlChar" ><A NAME="v%3AcontrolChar" ></A ></A ><B >controlChar</B > :: <A HREF="System-Posix-Terminal.html#t%3ATerminalAttributes" >TerminalAttributes</A > -> <A HREF="System-Posix-Terminal.html#t%3AControlCharacter" >ControlCharacter</A > -> <A HREF="../base/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="../ghc-prim/GHC-Types.html#t%3AChar" >Char</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:withCC" ><A NAME="v%3AwithCC" ></A ></A ><B >withCC</B > :: <A HREF="System-Posix-Terminal.html#t%3ATerminalAttributes" >TerminalAttributes</A > -> (<A HREF="System-Posix-Terminal.html#t%3AControlCharacter" >ControlCharacter</A >, <A HREF="../ghc-prim/GHC-Types.html#t%3AChar" >Char</A >) -> <A HREF="System-Posix-Terminal.html#t%3ATerminalAttributes" >TerminalAttributes</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:withoutCC" ><A NAME="v%3AwithoutCC" ></A ></A ><B >withoutCC</B > :: <A HREF="System-Posix-Terminal.html#t%3ATerminalAttributes" >TerminalAttributes</A > -> <A HREF="System-Posix-Terminal.html#t%3AControlCharacter" >ControlCharacter</A > -> <A HREF="System-Posix-Terminal.html#t%3ATerminalAttributes" >TerminalAttributes</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:inputTime" ><A NAME="v%3AinputTime" ></A ></A ><B >inputTime</B > :: <A HREF="System-Posix-Terminal.html#t%3ATerminalAttributes" >TerminalAttributes</A > -> <A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:withTime" ><A NAME="v%3AwithTime" ></A ></A ><B >withTime</B > :: <A HREF="System-Posix-Terminal.html#t%3ATerminalAttributes" >TerminalAttributes</A > -> <A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A > -> <A HREF="System-Posix-Terminal.html#t%3ATerminalAttributes" >TerminalAttributes</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:minInput" ><A NAME="v%3AminInput" ></A ></A ><B >minInput</B > :: <A HREF="System-Posix-Terminal.html#t%3ATerminalAttributes" >TerminalAttributes</A > -> <A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:withMinInput" ><A NAME="v%3AwithMinInput" ></A ></A ><B >withMinInput</B > :: <A HREF="System-Posix-Terminal.html#t%3ATerminalAttributes" >TerminalAttributes</A > -> <A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A > -> <A HREF="System-Posix-Terminal.html#t%3ATerminalAttributes" >TerminalAttributes</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:BaudRate" ><A NAME="t%3ABaudRate" ></A ></A ><B >BaudRate</B > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="section4" >Constructors</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v:B0" ><A NAME="v%3AB0" ></A ></A ><B >B0</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:B50" ><A NAME="v%3AB50" ></A ></A ><B >B50</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:B75" ><A NAME="v%3AB75" ></A ></A ><B >B75</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:B110" ><A NAME="v%3AB110" ></A ></A ><B >B110</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:B134" ><A NAME="v%3AB134" ></A ></A ><B >B134</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:B150" ><A NAME="v%3AB150" ></A ></A ><B >B150</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:B200" ><A NAME="v%3AB200" ></A ></A ><B >B200</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:B300" ><A NAME="v%3AB300" ></A ></A ><B >B300</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:B600" ><A NAME="v%3AB600" ></A ></A ><B >B600</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:B1200" ><A NAME="v%3AB1200" ></A ></A ><B >B1200</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:B1800" ><A NAME="v%3AB1800" ></A ></A ><B >B1800</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:B2400" ><A NAME="v%3AB2400" ></A ></A ><B >B2400</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:B4800" ><A NAME="v%3AB4800" ></A ></A ><B >B4800</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:B9600" ><A NAME="v%3AB9600" ></A ></A ><B >B9600</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:B19200" ><A NAME="v%3AB19200" ></A ></A ><B >B19200</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:B38400" ><A NAME="v%3AB38400" ></A ></A ><B >B38400</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:B57600" ><A NAME="v%3AB57600" ></A ></A ><B >B57600</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:B115200" ><A NAME="v%3AB115200" ></A ></A ><B >B115200</B ></TD ><TD CLASS="rdoc" ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:inputSpeed" ><A NAME="v%3AinputSpeed" ></A ></A ><B >inputSpeed</B > :: <A HREF="System-Posix-Terminal.html#t%3ATerminalAttributes" >TerminalAttributes</A > -> <A HREF="System-Posix-Terminal.html#t%3ABaudRate" >BaudRate</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:withInputSpeed" ><A NAME="v%3AwithInputSpeed" ></A ></A ><B >withInputSpeed</B > :: <A HREF="System-Posix-Terminal.html#t%3ATerminalAttributes" >TerminalAttributes</A > -> <A HREF="System-Posix-Terminal.html#t%3ABaudRate" >BaudRate</A > -> <A HREF="System-Posix-Terminal.html#t%3ATerminalAttributes" >TerminalAttributes</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:outputSpeed" ><A NAME="v%3AoutputSpeed" ></A ></A ><B >outputSpeed</B > :: <A HREF="System-Posix-Terminal.html#t%3ATerminalAttributes" >TerminalAttributes</A > -> <A HREF="System-Posix-Terminal.html#t%3ABaudRate" >BaudRate</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:withOutputSpeed" ><A NAME="v%3AwithOutputSpeed" ></A ></A ><B >withOutputSpeed</B > :: <A HREF="System-Posix-Terminal.html#t%3ATerminalAttributes" >TerminalAttributes</A > -> <A HREF="System-Posix-Terminal.html#t%3ABaudRate" >BaudRate</A > -> <A HREF="System-Posix-Terminal.html#t%3ATerminalAttributes" >TerminalAttributes</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section2" ><A NAME="3" ><A NAME="3" >Terminal operations </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:sendBreak" ><A NAME="v%3AsendBreak" ></A ></A ><B >sendBreak</B > :: <A HREF="../base/System-Posix-Types.html#t%3AFd" >Fd</A > -> <A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="doc" ><TT >sendBreak fd duration</TT > calls <TT >tcsendbreak</TT > to transmit a continuous stream of zero-valued bits on <TT >Fd</TT > <TT >fd</TT > for the specified implementation-dependent <TT >duration</TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:drainOutput" ><A NAME="v%3AdrainOutput" ></A ></A ><B >drainOutput</B > :: <A HREF="../base/System-Posix-Types.html#t%3AFd" >Fd</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="doc" ><TT >drainOutput fd</TT > calls <TT >tcdrain</TT > to block until all output written to <TT >Fd</TT > <TT >fd</TT > has been transmitted. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:QueueSelector" ><A NAME="t%3AQueueSelector" ></A ></A ><B >QueueSelector</B > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="section4" >Constructors</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v:InputQueue" ><A NAME="v%3AInputQueue" ></A ></A ><B >InputQueue</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:OutputQueue" ><A NAME="v%3AOutputQueue" ></A ></A ><B >OutputQueue</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:BothQueues" ><A NAME="v%3ABothQueues" ></A ></A ><B >BothQueues</B ></TD ><TD CLASS="rdoc" ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:discardData" ><A NAME="v%3AdiscardData" ></A ></A ><B >discardData</B > :: <A HREF="../base/System-Posix-Types.html#t%3AFd" >Fd</A > -> <A HREF="System-Posix-Terminal.html#t%3AQueueSelector" >QueueSelector</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="doc" ><TT >discardData fd queues</TT > calls <TT >tcflush</TT > to discard pending input and/or output for <TT >Fd</TT > <TT >fd</TT >, as indicated by the <TT >QueueSelector</TT > <TT >queues</TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:FlowAction" ><A NAME="t%3AFlowAction" ></A ></A ><B >FlowAction</B > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="section4" >Constructors</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v:SuspendOutput" ><A NAME="v%3ASuspendOutput" ></A ></A ><B >SuspendOutput</B ></TD ><TD CLASS="rdoc" >TCOOFF </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:RestartOutput" ><A NAME="v%3ARestartOutput" ></A ></A ><B >RestartOutput</B ></TD ><TD CLASS="rdoc" >TCOON </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:TransmitStop" ><A NAME="v%3ATransmitStop" ></A ></A ><B >TransmitStop</B ></TD ><TD CLASS="rdoc" >TCIOFF </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:TransmitStart" ><A NAME="v%3ATransmitStart" ></A ></A ><B >TransmitStart</B ></TD ><TD CLASS="rdoc" >TCION </TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:controlFlow" ><A NAME="v%3AcontrolFlow" ></A ></A ><B >controlFlow</B > :: <A HREF="../base/System-Posix-Types.html#t%3AFd" >Fd</A > -> <A HREF="System-Posix-Terminal.html#t%3AFlowAction" >FlowAction</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="doc" ><TT >controlFlow fd action</TT > calls <TT >tcflow</TT > to control the flow of data on <TT >Fd</TT > <TT >fd</TT >, as indicated by <TT >action</TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section2" ><A NAME="4" ><A NAME="4" >Process groups </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:getTerminalProcessGroupID" ><A NAME="v%3AgetTerminalProcessGroupID" ></A ></A ><B >getTerminalProcessGroupID</B > :: <A HREF="../base/System-Posix-Types.html#t%3AFd" >Fd</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../base/System-Posix-Types.html#t%3AProcessGroupID" >ProcessGroupID</A ></TD ></TR ><TR ><TD CLASS="doc" ><TT >getTerminalProcessGroupID fd</TT > calls <TT >tcgetpgrp</TT > to obtain the <TT >ProcessGroupID</TT > of the foreground process group associated with the terminal attached to <TT >Fd</TT > <TT >fd</TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:setTerminalProcessGroupID" ><A NAME="v%3AsetTerminalProcessGroupID" ></A ></A ><B >setTerminalProcessGroupID</B > :: <A HREF="../base/System-Posix-Types.html#t%3AFd" >Fd</A > -> <A HREF="../base/System-Posix-Types.html#t%3AProcessGroupID" >ProcessGroupID</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="doc" ><TT >setTerminalProcessGroupID fd pgid</TT > calls <TT >tcsetpgrp</TT > to set the <TT >ProcessGroupID</TT > of the foreground process group associated with the terminal attached to <TT >Fd</TT > <TT >fd</TT > to <TT >pgid</TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section2" ><A NAME="5" ><A NAME="5" >Testing a file descriptor </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:queryTerminal" ><A NAME="v%3AqueryTerminal" ></A ></A ><B >queryTerminal</B > :: <A HREF="../base/System-Posix-Types.html#t%3AFd" >Fd</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool" >Bool</A ></TD ></TR ><TR ><TD CLASS="doc" ><TT >queryTerminal fd</TT > calls <TT >isatty</TT > to determine whether or not <TT >Fd</TT > <TT >fd</TT > is associated with a terminal. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:getTerminalName" ><A NAME="v%3AgetTerminalName" ></A ></A ><B >getTerminalName</B > :: <A HREF="../base/System-Posix-Types.html#t%3AFd" >Fd</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../base/System-IO.html#t%3AFilePath" >FilePath</A ></TD ></TR ><TR ><TD CLASS="doc" ><TT >getTerminalName fd</TT > calls <TT >ttyname</TT > to obtain a name associated with the terminal for <TT >Fd</TT > <TT >fd</TT >. If <TT >fd</TT > is associated with a terminal, <TT >getTerminalName</TT > returns the name of the terminal. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:getControllingTerminalName" ><A NAME="v%3AgetControllingTerminalName" ></A ></A ><B >getControllingTerminalName</B > :: <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../base/System-IO.html#t%3AFilePath" >FilePath</A ></TD ></TR ><TR ><TD CLASS="doc" ><TT >getControllingTerminalName</TT > calls <TT >ctermid</TT > to obtain a name associated with the controlling terminal for the process. If a controlling terminal exists, <TT >getControllingTerminalName</TT > returns the name of the controlling terminal. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section2" ><A NAME="6" ><A NAME="6" >Pseudoterminal operations </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:openPseudoTerminal" ><A NAME="v%3AopenPseudoTerminal" ></A ></A ><B >openPseudoTerminal</B > :: <A HREF="../base/System-IO.html#t%3AIO" >IO</A > (<A HREF="../base/System-Posix-Types.html#t%3AFd" >Fd</A >, <A HREF="../base/System-Posix-Types.html#t%3AFd" >Fd</A >)</TD ></TR ><TR ><TD CLASS="doc" ><TT >openPseudoTerminal</TT > creates a pseudoterminal (pty) pair, and returns the newly created pair as a (<TT >master</TT >, <TT >slave</TT >) tuple. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:getSlaveTerminalName" ><A NAME="v%3AgetSlaveTerminalName" ></A ></A ><B >getSlaveTerminalName</B > :: <A HREF="../base/System-Posix-Types.html#t%3AFd" >Fd</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../base/System-IO.html#t%3AFilePath" >FilePath</A ></TD ></TR ><TR ><TD CLASS="doc" ><TT >getSlaveTerminalName</TT > calls <TT >ptsname</TT > 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. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="botbar" >Produced by <A HREF="http://www.haskell.org/haddock/" >Haddock</A > version 2.4.2</TD ></TR ></TABLE ></BODY ></HTML >