Uninitialized vector entry?
[minix3.git] / man / man3 / termios.3
blob5686a16a51df3eb0a9e857dec0f71c6c4e4f10d7
1 .TH TERMIOS 3
2 .SH NAME
3 termios, tcgetattr, tcsetattr, cfgetispeed, cfgetospeed, cfsetispeed, cfsetospeed, tcsendbreak, tcdrain, tcflush, tcflow \- change terminal attributes
4 .SH SYNOPSIS
5 .ft B
6 .nf
7 #include <termios.h>
9 int tcgetattr(int \fIfd\fP, struct termios *\fItp\fP)
10 int tcsetattr(int \fIfd\fP, int \fIaction\fP, const struct termios *\fItp\fP)
12 speed_t cfgetispeed(const struct termios *\fItp\fP)
13 speed_t cfgetospeed(const struct termios *\fItp\fP)
14 int cfsetispeed(struct termios *\fItp\fP, speed_t \fIspeed\fP)
15 int cfsetospeed(struct termios *\fItp\fP, speed_t \fIspeed\fP)
17 int tcsendbreak(int \fIfd\fP, int \fIduration\fP)
18 int tcdrain(int \fIfd\fP)
19 int tcflush(int \fIfd\fP, int \fIqueue_selector\fP)
20 int tcflow(int \fIfd\fP, int \fIaction\fP)
21 .fi
22 .ft P
23 .SH DESCRIPTION
24 .de SP
25 .if t .sp 0.4
26 .if n .sp
28 These are the user functions that modify the tty attributes mentioned in
29 .BR tty (4).
30 In the following,
31 .I fd
32 refers to an open terminal device file,
33 .I tp
34 is the address of a
35 .BR "struct termios" ,
36 and
37 .I speed
38 and values of type
39 .B speed_t
40 are equal to one of the
41 .BR B0 ,
42 .BR B50 ,
43 etc. baud rate symbols.  All functions, symbols, and types are declared in
44 .BR <termios.h> .
45 .PP
46 The effects of the tty functions are:
47 .TP
48 .B tcgetattr(\fIfd\fP, \fItp\fP)
49 Get the current settings of the tty attributes.
50 .TP
51 .B tcsetattr(\fIfd\fP, TCSANOW, \fItp\fP)
52 Set the terminal attributes.  The change occurs immediately.
53 .TP
54 .B tcsetattr(\fIfd\fP, TCSADRAIN, \fItp\fP)
55 Set the terminal attributes.  The change occurs once all the output waiting
56 in the output queues has been transmitted.  This should be used when options
57 affecting output are changed.
58 .TP
59 .B tcsetattr(\fIfd\fP, TCSAFLUSH, \fItp\fP)
60 Set the terminal attributes.  But first wait until all the output waiting
61 in the output queues has been transmitted.  All input waiting in the input
62 queues is then discarded and the change is made.  This should be used when
63 switching from canonical to non-canonical mode or vice-versa.  (Oddly
64 enough, this is seldom what you want, because it discards typeahead.  An
65 editing shell does the Right Thing if it uses
66 .B TCSANOW
67 instead.  \s-2POSIX\s+2 may not guarantee good results, but in practice most
68 systems make the canonical input available in raw mode.)
69 .TP
70 .B cfgetispeed(\fItp\fP)
71 Return the input baud rate encoded in the termios structure.
72 .TP
73 .B cfgetospeed(\fItp\fP)
74 Return the output baud rate encoded in the termios structure.
75 .TP
76 .B cfsetispeed(\fItp\fP, \fIspeed\fP)
77 Encode the new input baud rate into the termios structure.
78 .TP
79 .B cfsetospeed(\fItp\fP, \fIspeed\fP)
80 Encode the new output baud rate into the termios structure.
81 .TP
82 .B tcsendbreak(\fIfd\fP, \fIduration\fP)
83 Emit a break condition on a serial line for a time indicated by
84 .IR duration .
85 (Always 0.4 seconds under MINIX 3,
86 .I duration
87 is ignored.)
88 .TP
89 .B tcdrain(\fIfd\fP)
90 Wait until all output waiting in the output queues has been transmitted.
91 .TP
92 .B tcflush(\fIfd\fP, TCIFLUSH)
93 Flush the input queue.  (I.e. discard it.)
94 .TP
95 .B tcflush(\fIfd\fP, TCOFLUSH)
96 Flush the output queue.
97 .TP
98 .B tcflush(\fIfd\fP, TCIOFLUSH)
99 Flush the input and output queues.
101 .B tcflow(\fIfd\fP, TCOOFF)
102 Suspend output.  (Like the effect of
103 .BR STOP .)
105 .B tcflow(\fIfd\fP, TCOON)
106 Restart output.  (Like the effect of
107 .BR START .)
109 .B tcflow(\fIfd\fP, TCIOFF)
110 Transmit a
111 .B STOP
112 character intended to make the remote device stop transmitting data.
114 .B tcflow(\fIfd\fP, TCION)
115 Transmit a
116 .B START
117 character to restart the remote device.
118 .SH "SEE ALSO"
119 .BR stty (1),
120 .BR tty (4).
121 .SH DIAGNOSTICS
122 All functions return 0 unless otherwise specified, and \-1 on error with
123 .B errno
124 set to indicate the type of error.  The most notable errors are
125 .B ENOTTY
127 .I fd
128 does not refer to a terminal device, and
129 .B EINTR
130 if one of the functions waiting for output to drain is interrupted.
131 .SH NOTES
132 It may be interesting to know that the functions operating on the tty are
133 directly translated into the following MINIX 3
134 .B ioctl
135 requests:
136 .BR TCGETS ,
137 .BR TCSETS
138 (now),
139 .BR TCSETSW
140 (drain),
141 .BR TCSETSF ,
142 (flush),
143 .BR TCSBRK ,
144 .BR TCDRAIN ,
145 .BR TCFLSH ,
147 .BR TCFLOW .
148 You should only use this knowledge when trying to understand the tty driver
149 code, of course.
150 .SH BUGS
151 .SH AUTHOR
152 Kees J. Bot (kjb@cs.vu.nl)
155 .\" $PchId: termios.3,v 1.2 1996/04/11 06:41:24 philip Exp $