Programming Interfaces Guide

Terminal I/O Functions

Terminal I/O interfaces deal with a general terminal interface for controlling asynchronous communications ports, as shown in the following table. For more information, see the termios(3C) and termio(7I) man pages.

Table 6–5 Terminal I/O Interfaces

Interface Name 

Purpose 

tcgetattr(3C), tcsetattr(3C)

Get and set terminal attributes 

tcsendbreak(3C), tcdrain(3C), tcflush(3C), tcflow(3C)

Perform line control interfaces 

cfgetospeed(3C), cfgetispeed(3C)cfsetispeed(3C), cfsetospeed(3C)

Get and set baud rate 

tcsetpgrp(3C)

Get and set terminal foreground process group ID 

tcgetsid(3C)

Get terminal session ID 

The following example shows how the server dissociates from the controlling terminal of its invoker in the non-DEBUG mode of operation.


Example 6–4 Dissociating From the Controlling Terminal

   (void) close(0);
   (void) close(1);
   (void) close(2);
   (void) open("/", O_RDONLY);
   (void) dup2(0, 1);
   (void) dup2(0, 2);
   setsid();

This operation mode prevents the server from receiving signals from the process group of the controlling terminal. A server cannot send reports of errors to a terminal after the server has dissociated. The dissociated server must log errors with syslog(3C).