Commit | Line | Data |
---|---|---|
8bb980a3 C |
1 | TCSETATTR(3) BSD Programmer's Manual TCSETATTR(3) |
2 | ||
3 | N\bNA\bAM\bME\bE | |
4 | c\bcf\bfg\bge\bet\bti\bis\bsp\bpe\bee\bed\bd, c\bcf\bfs\bse\bet\bti\bis\bsp\bpe\bee\bed\bd, c\bcf\bfg\bge\bet\bto\bos\bsp\bpe\bee\bed\bd, c\bcf\bfs\bse\bet\bto\bos\bsp\bpe\bee\bed\bd, c\bcf\bfs\bse\bet\bts\bsp\bpe\bee\bed\bd, | |
5 | c\bcf\bfm\bma\bak\bke\ber\bra\baw\bw, t\btc\bcg\bge\bet\bta\bat\btt\btr\br, t\btc\bcs\bse\bet\bta\bat\btt\btr\br - manipulating the termios structure | |
6 | ||
7 | S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS | |
8 | #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<t\bte\ber\brm\bmi\bio\bos\bs.\b.h\bh>\b> | |
9 | ||
10 | _\bs_\bp_\be_\be_\bd_\b__\bt | |
11 | c\bcf\bfg\bge\bet\bti\bis\bsp\bpe\bee\bed\bd(_\bs_\bt_\br_\bu_\bc_\bt _\bt_\be_\br_\bm_\bi_\bo_\bs _\b*_\bt); | |
12 | ||
13 | _\bi_\bn_\bt | |
14 | c\bcf\bfs\bse\bet\bti\bis\bsp\bpe\bee\bed\bd(_\bs_\bt_\br_\bu_\bc_\bt _\bt_\be_\br_\bm_\bi_\bo_\bs _\b*_\bt, _\bs_\bp_\be_\be_\bd_\b__\bt _\bs_\bp_\be_\be_\bd); | |
15 | ||
16 | _\bs_\bp_\be_\be_\bd_\b__\bt | |
17 | c\bcf\bfg\bge\bet\bto\bos\bsp\bpe\bee\bed\bd(_\bs_\bt_\br_\bu_\bc_\bt _\bt_\be_\br_\bm_\bi_\bo_\bs _\b*_\bt); | |
18 | ||
19 | _\bi_\bn_\bt | |
20 | c\bcf\bfs\bse\bet\bto\bos\bsp\bpe\bee\bed\bd(_\bs_\bt_\br_\bu_\bc_\bt _\bt_\be_\br_\bm_\bi_\bo_\bs _\b*_\bt, _\bs_\bp_\be_\be_\bd_\b__\bt _\bs_\bp_\be_\be_\bd); | |
21 | ||
22 | _\bv_\bo_\bi_\bd | |
23 | c\bcf\bfs\bse\bet\bts\bsp\bpe\bee\bed\bd(_\bs_\bt_\br_\bu_\bc_\bt _\bt_\be_\br_\bm_\bi_\bo_\bs _\b*_\bt, _\bs_\bp_\be_\be_\bd_\b__\bt _\bs_\bp_\be_\be_\bd); | |
24 | ||
25 | _\bv_\bo_\bi_\bd | |
26 | c\bcf\bfm\bma\bak\bke\ber\bra\baw\bw(_\bs_\bt_\br_\bu_\bc_\bt _\bt_\be_\br_\bm_\bi_\bo_\bs _\b*_\bt); | |
27 | ||
28 | _\bi_\bn_\bt | |
29 | t\btc\bcg\bge\bet\bta\bat\btt\btr\br(_\bi_\bn_\bt _\bf_\bd, _\bs_\bt_\br_\bu_\bc_\bt _\bt_\be_\br_\bm_\bi_\bo_\bs _\b*_\bt); | |
30 | ||
31 | _\bi_\bn_\bt | |
32 | t\btc\bcs\bse\bet\bta\bat\btt\btr\br(_\bi_\bn_\bt _\bf_\bd, _\bi_\bn_\bt _\ba_\bc_\bt_\bi_\bo_\bn, _\bs_\bt_\br_\bu_\bc_\bt _\bt_\be_\br_\bm_\bi_\bo_\bs _\b*_\bt); | |
33 | ||
34 | D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN | |
35 | The c\bcf\bfm\bma\bak\bke\ber\bra\baw\bw, t\btc\bcg\bge\bet\bta\bat\btt\btr\br and t\btc\bcs\bse\bet\bta\bat\btt\btr\br functions are provided for getting | |
36 | and setting the termios structure. | |
37 | ||
38 | The c\bcf\bfg\bge\bet\bti\bis\bsp\bpe\bee\bed\bd, c\bcf\bfs\bse\bet\bti\bis\bsp\bpe\bee\bed\bd, c\bcf\bfg\bge\bet\bto\bos\bsp\bpe\bee\bed\bd, c\bcf\bfs\bse\bet\bto\bos\bsp\bpe\bee\bed\bd and c\bcf\bfs\bse\bet\bts\bsp\bpe\bee\bed\bd | |
39 | functions are provided for getting and setting the baud rate values in | |
40 | the termios structure. The effects of the functions on the terminal as | |
41 | described below do not become effective, nor are all errors detected, un- | |
42 | til the t\btc\bcs\bse\bet\bta\bat\btt\btr\br function is called. Certain values for baud rates set | |
43 | in the termios structure and passed to t\btc\bcs\bse\bet\bta\bat\btt\btr\br have special meanings. | |
44 | These are discussed in the portion of the manual page that describes the | |
45 | t\btc\bcs\bse\bet\bta\bat\btt\btr\br function. | |
46 | ||
47 | G\bGE\bET\bTT\bTI\bIN\bNG\bG A\bAN\bND\bD S\bSE\bET\bTT\bTI\bIN\bNG\bG T\bTH\bHE\bE B\bBA\bAU\bUD\bD R\bRA\bAT\bTE\bE | |
48 | The input and output baud rates are found in the termios structure. The | |
49 | unsigned integer speed_t is typdef'd in the include file <_\bt_\be_\br_\bm_\bi_\bo_\bs_\b._\bh>. The | |
50 | value of the integer corresponds directly to the baud rate being repre- | |
51 | sented, however, the following symbolic values are defined. | |
52 | ||
53 | #define B0 0 | |
54 | #define B50 50 | |
55 | #define B75 75 | |
56 | #define B110 110 | |
57 | #define B134 134 | |
58 | #define B150 150 | |
59 | #define B200 200 | |
60 | #define B300 300 | |
61 | #define B600 600 | |
62 | #define B1200 1200 | |
63 | #define B1800 1800 | |
64 | #define B2400 2400 | |
65 | #define B4800 4800 | |
66 | #define B9600 9600 | |
67 | #define B19200 19200 | |
68 | #define B38400 38400 | |
69 | #ifndef _POSIX_SOURCE | |
70 | #define EXTA 19200 | |
71 | #define EXTB 38400 | |
72 | #endif /*_POSIX_SOURCE */ | |
73 | ||
74 | The c\bcf\bfg\bge\bet\bti\bis\bsp\bpe\bee\bed\bd function returns the input baud rate in the termios | |
75 | structure referenced by _\bt_\bp. | |
76 | ||
77 | The c\bcf\bfs\bse\bet\bti\bis\bsp\bpe\bee\bed\bd function sets the input baud rate in the termios struc- | |
78 | ture referenced by _\bt_\bp to _\bs_\bp_\be_\be_\bd. | |
79 | ||
80 | The c\bcf\bfg\bge\bet\bto\bos\bsp\bpe\bee\bed\bd function returns the output baud rate in the termios | |
81 | structure referenced by _\bt_\bp. | |
82 | ||
83 | The c\bcf\bfs\bse\bet\bto\bos\bsp\bpe\bee\bed\bd function sets the output baud rate in the termios struc- | |
84 | ture referenced by _\bt_\bp to _\bs_\bp_\be_\be_\bd. | |
85 | ||
86 | The c\bcf\bfs\bse\bet\bts\bsp\bpe\bee\bed\bd function sets both the input and output baud rate in the | |
87 | termios structure referenced by _\bt_\bp to _\bs_\bp_\be_\be_\bd. | |
88 | ||
89 | Upon successful completion, the functions c\bcf\bfs\bse\bet\bti\bis\bsp\bpe\bee\bed\bd, c\bcf\bfs\bse\bet\bto\bos\bsp\bpe\bee\bed\bd, and | |
90 | c\bcf\bfs\bse\bet\bts\bsp\bpe\bee\bed\bd return a value of 0. Otherwise, a value of -1 is returned and | |
91 | the global variable _\be_\br_\br_\bn_\bo is set to indicate the error. | |
92 | ||
93 | G\bGE\bET\bTT\bTI\bIN\bNG\bG A\bAN\bND\bD S\bSE\bET\bTT\bTI\bIN\bNG\bG T\bTH\bHE\bE T\bTE\bER\bRM\bMI\bIO\bOS\bS S\bST\bTA\bAT\bTE\bE | |
94 | This section describes the functions that are used to control the general | |
95 | terminal interface. Unless otherwise noted for a specific command, these | |
96 | functions are restricted from use by background processes. Attempts to | |
97 | perform these operations shall cause the process group to be sent a SIGT- | |
98 | TOU signal. If the calling process is blocking or ignoring SIGTTOU sig- | |
99 | nals, the process is allowed to perform the operation and the SIGTTOU | |
100 | signal is not sent. | |
101 | ||
102 | In all the functions, although _\bf_\bd is an open file descriptor, the func- | |
103 | tions affect the underlying terminal file, not just the open file de- | |
104 | scription associated with the particular file descriptor. | |
105 | ||
106 | The c\bcf\bfm\bma\bak\bke\ber\bra\baw\bw function sets the flags stored in the termios structure to | |
107 | a state disabling all input and output processing, giving a ``raw I/O | |
108 | path.'' It should be noted that there is no function to reverse this ef- | |
109 | fect. This is because there are a variety of processing options that | |
110 | could be re-enabled and the correct method is for an application to snap- | |
111 | shot the current terminal state using the function t\btc\bcg\bge\bet\bta\bat\btt\btr\br, setting raw | |
112 | mode with c\bcf\bfm\bma\bak\bke\ber\bra\baw\bw and the subsequent t\btc\bcs\bse\bet\bta\bat\btt\btr\br, and then using another | |
113 | t\btc\bcs\bse\bet\bta\bat\btt\btr\br with the saved state to revert to the previous terminal state. | |
114 | ||
115 | The t\btc\bcg\bge\bet\bta\bat\btt\btr\br function copies the parameters associated with the terminal | |
116 | referenced by _\bf_\bd in the termios structure referenced by _\bt_\bp. This function | |
117 | is allowed from a background process, however, the terminal attributes | |
118 | may be subsequently changed by a foreground process. | |
119 | ||
120 | The t\btc\bcs\bse\bet\bta\bat\btt\btr\br function sets the parameters associated with the terminal | |
121 | from the termios structure referenced by _\bt_\bp. The _\ba_\bc_\bt_\bi_\bo_\bn field is created | |
122 | by _\bo_\br'ing the following values, as specified in the include file | |
123 | <_\bt_\be_\br_\bm_\bi_\bo_\bs_\b._\bh>. | |
124 | ||
125 | _\bT_\bC_\bS_\bA_\bN_\bO_\bW The change occurs immediately. | |
126 | ||
127 | _\bT_\bC_\bS_\bA_\bD_\bR_\bA_\bI_\bN The change occurs after all output written to _\bf_\bd has been | |
128 | transmitted to the terminal. This value of _\ba_\bc_\bt_\bi_\bo_\bn should be | |
129 | used when changing parameters that affect output. | |
130 | ||
131 | _\bT_\bC_\bS_\bA_\bF_\bL_\bU_\bS_\bH The change occurs after all output written to _\bf_\bd has been | |
132 | transmitted to the terminal Additionally, any input that has | |
133 | been received but not read is discarded. | |
134 | ||
135 | _\bT_\bC_\bS_\bA_\bS_\bO_\bF_\bT If this value is _\bo_\br'ed into the _\ba_\bc_\bt_\bi_\bo_\bn value, the values of | |
136 | the _\bc_\b__\bc_\bf_\bl_\ba_\bg, _\bc_\b__\bi_\bs_\bp_\be_\be_\bd, and _\bc_\b__\bo_\bs_\bp_\be_\be_\bd fields are ignored. | |
137 | ||
138 | The 0 baud rate is used to terminate the connection. If 0 is specified | |
139 | as the output speed to the function t\btc\bcs\bse\bet\bta\bat\btt\btr\br, modem control will no | |
140 | longer be asserted on the terminal, disconnecting the terminal. | |
141 | ||
142 | If zero is specified as the input speed to the function t\btc\bcs\bse\bet\bta\bat\btt\btr\br, the | |
143 | input baud rate will be set to the same value as that specified by the | |
144 | output baud rate. | |
145 | ||
146 | If t\btc\bcs\bse\bet\bta\bat\btt\btr\br is unable able to make any of the requested changes, it re- | |
147 | turns -1 and sets errno. Otherwise, it makes all of the requested | |
148 | changes it can. If the specified input and output baud rates differ and | |
149 | are a combination that is not supported, neither baud rate is changed. | |
150 | ||
151 | Upon successful completion, the functions t\btc\bcg\bge\bet\bta\bat\btt\btr\br and t\btc\bcs\bse\bet\bta\bat\btt\btr\br return | |
152 | a value of 0. Otherwise, they return -1 and the global variable _\be_\br_\br_\bn_\bo is | |
153 | set to indicate the error, as follows: | |
154 | ||
155 | [EBADF] The _\bf_\bd argument to t\btc\bcg\bge\bet\bta\bat\btt\btr\br or t\btc\bcs\bse\bet\bta\bat\btt\btr\br was not a valid | |
156 | file descriptor. | |
157 | ||
158 | [EINTR] The t\btc\bcs\bse\bet\bta\bat\btt\btr\br function was interrupted by a signal. | |
159 | ||
160 | [EINVAL] The _\ba_\bc_\bt_\bi_\bo_\bn argument to the t\btc\bcs\bse\bet\bta\bat\btt\btr\br function was not | |
161 | valid, or an attempt was made to change an attribute repre- | |
162 | sented in the termios structure to an unsupported value. | |
163 | ||
164 | [ENOTTY] The file associated with the _\bf_\bd argument to t\btc\bcg\bge\bet\bta\bat\btt\btr\br or | |
165 | t\btc\bcs\bse\bet\bta\bat\btt\btr\br is not a terminal. | |
166 | ||
167 | S\bSE\bEE\bE A\bAL\bLS\bSO\bO | |
168 | tcsendbreak(3), termios(4) | |
169 | ||
170 | S\bST\bTA\bAN\bND\bDA\bAR\bRD\bDS\bS | |
171 | The c\bcf\bfg\bge\bet\bti\bis\bsp\bpe\bee\bed\bd, c\bcf\bfs\bse\bet\bti\bis\bsp\bpe\bee\bed\bd, c\bcf\bfg\bge\bet\bto\bos\bsp\bpe\bee\bed\bd, c\bcf\bfs\bse\bet\bto\bos\bsp\bpe\bee\bed\bd, t\btc\bcg\bge\bet\bta\bat\btt\btr\br and | |
172 | t\btc\bcs\bse\bet\bta\bat\btt\btr\br functions are expected to be compliant with the IEEE | |
173 | Std1003.1-1988 (``POSIX'') specification. The c\bcf\bfm\bma\bak\bke\ber\bra\baw\bw and c\bcf\bfs\bse\bet\bts\bsp\bpe\bee\bed\bd | |
174 | functions, as well as the TCSASOFT option to the t\btc\bcs\bse\bet\bta\bat\btt\btr\br function are | |
175 | extensions to the IEEE Std1003.1-1988 (``POSIX'') specification. | |
176 | ||
177 | 4.4BSD June 4, 1993 3 |