OSDN Git Service

(split) LDP v3.30, v3.31 の定型的な変更内容を反映。
[linuxjm/LDP_man-pages.git] / release / man4 / tty_ioctl.4
1 .\" Copyright 2002 Walter Harms <walter.harms@informatik.uni-oldenburg.de>
2 .\" and Andries Brouwer <aeb@cwi.nl>.
3 .\" Distributed under GPL.
4 .\"
5 .\" Japanese Version Copyright (c) 2004 Yuichi SATO
6 .\"         all rights reserved.
7 .\" Translated Sat Oct 16 06:08:24 JST 2004
8 .\"         by Yuichi SATO <ysato444@yahoo.co.jp>
9 .\"
10 .TH TTY_IOCTL 4 2008-10-29 "Linux" "Linux Programmer's Manual"
11 .SH Ì¾Á°
12 tty_ioctl \- Ã¼Ëö¤È¥·¥ê¥¢¥ë¥é¥¤¥ó¤Î ioctl (Æþ½ÐÎÏÀ©¸æ)
13 .SH ½ñ¼°
14 .B "#include <termios.h>"
15 .sp
16 .BI "int ioctl(int " fd ", int " cmd ", ...);"
17 .SH ÀâÌÀ
18 üËö¤È¥·¥ê¥¢¥ë¥Ý¡¼¥È¤Ë¤Ä¤¤¤Æ¤Î
19 .BR ioctl (2)
20 ¥³¡¼¥ë¤Ï¡¢Â¿¤¯¤Î¥³¥Þ¥ó¥É°ú¤­¿ô¤ò¼õ¤±ÉÕ¤±¤ë¡£
21 ¿¤¯¤¬¤¤¤í¤¤¤í¤Ê·¿¤Î 3 ÈÖÌܤΰú¤­¿ô¤òɬÍפȤ¹¤ë¡£
22 ¤³¤³¤Ç¤Ï \fIargp\fP ¤Þ¤¿¤Ï \fIarg\fP ¤È¸Æ¤Ö¡£
23 .LP
24 .I ioctl
25 ¤ò»ÈÍѤ¹¤ë¤È°Ü¿¢À­¤Î¤Ê¤¤¥×¥í¥°¥é¥à¤Ë¤Ê¤ë¡£
26 ²Äǽ¤Ê¾ì¹ç¤Ï¡¢
27 .BR termios (3)
28 ¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë POSIX ¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ò»È¤¦¤³¤È¡£
29 .SS Ã¼Ëö°À­¤Î¼èÆÀ¤ÈÀßÄê
30 .TP
31 .BI "TCGETS     struct termios *" argp
32 .I "tcgetattr(fd, argp)"
33 ¤ÈƱ¤¸¡£
34 .br
35 ¸½ºß¤Î¥·¥ê¥¢¥ë¥Ý¡¼¥È¤ÎÀßÄê¤ò¼èÆÀ¤¹¤ë¡£
36 .TP
37 .BI "TCSETS     const struct termios *" argp
38 .I "tcsetattr(fd, TCSANOW, argp)"
39 ¤ÈƱ¤¸¡£
40 .br
41 ¸½ºß¤Î¥·¥ê¥¢¥ë¥Ý¡¼¥È¤ÎÀßÄê¤òÊѹ¹¤¹¤ë¡£
42 .TP
43 .BI "TCSETSW    const struct termios *" argp
44 .I "tcsetattr(fd, TCSADRAIN, argp)"
45 ¤ÈƱ¤¸¡£
46 .br
47 ÇӽР(drain) ¤ò¹Ô¤¦¤¿¤á¤Î½ÐÎϥХåե¡¤Î»ÈÍѤòµö²Ä¤·¡¢
48 ¸½ºß¤Î¥·¥ê¥¢¥ë¥Ý¡¼¥È¤ÎÀßÄê¤òÊѹ¹¤¹¤ë¡£
49 .TP
50 .BI "TCSETSF    const struct termios *" argp
51 .I "tcsetattr(fd, TCSAFLUSH, argp)"
52 ¤ÈƱ¤¸¡£
53 .br
54 ÇӽР(drain) ¤ò¹Ô¤¦¤¿¤á¤Î½ÐÎϥХåե¡¤Î»ÈÍѤòµö²Ä¤·¡¢
55 ½èÍý¤·¤Æ¤¤¤Ê¤¤ÆþÎϤòÇË´þ¤·¤Æ¡¢
56 ¸½ºß¤Î¥·¥ê¥¢¥ë¥Ý¡¼¥È¤ÎÀßÄê¤òÊѹ¹¤¹¤ë¡£
57 .LP
58 °Ê²¼¤Î 4 ¤Ä¤Î ioctl ¤Ï
59 .BR TCGETS ,
60 .BR TCSETS ,
61 .BR TCSETSW ,
62 .B TCSETSF
63 ¤È»÷¤Æ¤¤¤ë¡£
64 ¤¿¤À¤·¡¢
65 .I "struct termios *"
66 ¤ÎÂå¤ï¤ê¤Ë
67 .I "struct termio *"
68 ¤ò¼è¤ë¡£
69 .TP
70 .BI "TCGETA     struct termio *" argp
71 .TP
72 .BI "TCSETA     const struct termio *" argp
73 .TP
74 .BI "TCSETAW    const struct termio *" argp
75 .TP
76 .BI "TCSETAF    const struct termio *" argp
77 .SS "termios ¹½Â¤ÂΤΥí¥Ã¥¯"
78 üËö¤Î
79 .I termios
80 ¹½Â¤ÂΤϥí¥Ã¥¯¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¢¤ë¡£
81 ¤³¤Î¥í¥Ã¥¯¼«ÂΤÏ
82 .I termios
83 ¹½Â¤ÂΤǤ¢¤ê¡¢
84 0 ¤Ç¤Ê¤¤¥Ó¥Ã¥È¤Þ¤¿¤Ï¥Õ¥£¡¼¥ë¥É¤Ï¥í¥Ã¥¯¤µ¤ì¤¿Ãͤò¼¨¤¹¡£
85 .TP
86 .BI "TIOCGLCKTRMIOS     struct termios *" argp
87 üËö¤Î
88 .I termios
89 ¹½Â¤ÂΤΥí¥Ã¥¯¾õÂÖ¤ò¼èÆÀ¤¹¤ë¡£
90 .TP
91 .BI "TIOCSLCKTRMIOS     const struct termios *" argp
92 üËö¤Î
93 .I termios
94 ¹½Â¤ÂΤΥí¥Ã¥¯¾õÂÖ¤òÀßÄꤹ¤ë¡£
95 root ¤Î¤ß (¤è¤êÀµ³Î¤Ë¤Ï¡¢
96 .B CAP_SYS_ADMIN
97 ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ä¥×¥í¥»¥¹) ¤¬¤³¤ì¤ò¼Â¹Ô¤Ç¤­¤ë¡£
98 .SS ¥¦¥£¥ó¥É¥¦¥µ¥¤¥º¤Î¼èÆÀ¤ÈÀßÄê
99 ¥¦¥£¥ó¥É¥¦¥µ¥¤¥º¤Ï¥«¡¼¥Í¥ëÆâ¤ËÊÝ»ý¤µ¤ì¤ë¤¬¡¢
100 ¥«¡¼¥Í¥ë¤Ë¤è¤Ã¤Æ»ÈÍѤµ¤ì¤Ê¤¤
101 (²¾ÁÛ¥³¥ó¥½¡¼¥ë¤Î¾ì¹ç¤ÏÎã³°¤Ç¤¢¤ê¡¢¿·¤·¤¤¥Õ¥©¥ó¥È¤òÆɤ߹þ¤ó¤À¾ì¹ç¤Ê¤É¡¢
102 ²¾ÁÛüËö¤Î¥µ¥¤¥º¤¬Êѹ¹¤µ¤ì¤¿¾ì¹ç¡¢¥«¡¼¥Í¥ë¤Ï¥¦¥£¥ó¥É¥¦¥µ¥¤¥º¤ò¹¹¿·¤¹¤ë)¡£
103
104 °Ê²¼¤ÎÄê¿ô¤È¹½Â¤ÂΤÏ
105 .I <sys/ioctl.h>
106 ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£
107 .TP
108 .BI "TIOCGWINSZ struct winsize *" argp
109 ¥¦¥£¥ó¥É¥¦¥µ¥¤¥º¤ò¼èÆÀ¤¹¤ë¡£
110 .TP
111 .BI "TIOCSWINSZ const struct winsize *" argp
112 ¥¦¥£¥ó¥É¥¦¥µ¥¤¥º¤òÀßÄꤹ¤ë¡£
113 .LP
114 ¤³¤ì¤é¤Î ioctl ¤Ç»ÈÍѤµ¤ì¤ë¹½Â¤ÂΤϡ¢°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤ë¡£
115
116 .in +4n
117 .nf
118 struct winsize {
119     unsigned short ws_row;
120     unsigned short ws_col;
121     unsigned short ws_xpixel;   /* Ì¤»ÈÍÑ */
122     unsigned short ws_ypixel;   /* Ì¤»ÈÍÑ */
123 };
124 .fi
125 .in
126
127 ¥¦¥£¥ó¥É¥¦¥µ¥¤¥º¤¬Êѹ¹¤µ¤ì¤¿¾ì¹ç¡¢
128 ¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Ë
129 .B SIGWINCH
130 ¥·¥°¥Ê¥ë¤¬Á÷¤é¤ì¤ë¡£
131 .SS "break ¤ÎÁ÷¿®"
132 .TP
133 .BI "TCSBRK     int " arg
134 .I "tcsendbreak(fd, arg)"
135 ¤ÈƱ¤¸¡£
136 .br
137 üËö¤¬ÈóƱ´ü¥·¥ê¥¢¥ë¥Ç¡¼¥¿Å¾Á÷¤ò»ÈÍѤ·¤Æ¤ª¤ê¡¢
138 .I arg
139 ¤¬ 0 ¤Î¾ì¹ç¡¢0.25 ¤«¤é 0.5 Éäδ֤Ë
140 break (0 ¤Î¥Ó¥Ã¥ÈÎó¤Î¥¹¥È¥ê¡¼¥à) ¤¬Á÷¿®¤µ¤ì¤ë¡£
141 üËö¤¬ÈóƱ´ü¥·¥ê¥¢¥ë¥Ç¡¼¥¿Å¾Á÷¤ò»ÈÍѤ·¤Æ¤¤¤ë¾ì¹ç¡¢
142 break ¤¬Á÷¿®¤µ¤ì¤ë¤«¡¢¤³¤Î´Ø¿ô¤Ï²¿¤â¤»¤º¤ËÊ֤롣
143 .I arg
144 ¤¬ 0 °Ê³°¤Î¾ì¹ç¡¢²¿¤¬µ¯¤³¤ë¤«Ê¬¤«¤é¤Ê¤¤¡£
145
146 (SVr4, UnixWare, Solaris, Linux ¤Ï¡¢
147 .I "tcsendbreak(fd,arg)"
148 ¤Î
149 .I arg
150 ¤¬ 0 °Ê³°¤Î¾ì¹ç¡¢
151 .I "tcdrain(fd)"
152 ¤Î¤è¤¦¤Ë°·¤¦¡£
153 SunOS ¤Ï
154 .I arg
155 ¤òÇÜ¿ô¤È¤·¤Æ°·¤¤¡¢¥Ó¥Ã¥È¤Î¥¹¥È¥ê¡¼¥à¤ò
156 .I arg
157 ²óÁ÷¿®¤¹¤ë¡£
158 .I arg
159 ¤¬ 0 ¤Î¾ì¹ç¤âƱ¤¸¡£
160 DG/UX ¤È AIX ¤Ï¡¢(0 °Ê³°¤Î¾ì¹ç)
161 .I arg
162 ¤ò¥ß¥êÉÃñ°Ì¤Î»þ´Ö´Ö³Ö¤È¤·¤Æ°·¤¦¡£
163 HP-UX ¤Ï
164 .I arg
165 ¤ò̵»ë¤¹¤ë¡£)
166 .TP
167 .BI "TCSBRKP    int " arg
168 ¤¤¤ï¤æ¤ë¡ÖPOSIX ÈǡפÎ
169 .B TCSBRK
170 ¤Ç¤¢¤ë¡£
171 ¤³¤ì¤Ï 0 °Ê³°¤Î
172 .I arg
173 ¤ò 1/10 ÉÃñ°Ì¤Î»þ´Ö´Ö³Ö¤È¤·¤Æ°·¤¦¡£
174 ¤Þ¤¿¥É¥é¥¤¥Ð¤¬ break ¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢²¿¤â¤·¤Ê¤¤¡£
175 .TP
176 .B "TIOCSBRK    void"
177 break ¤ò¥ª¥ó¤Ë¤¹¤ë¡£
178 ¤Ä¤Þ¤ê 0 ¤Î¥Ó¥Ã¥ÈÎó¤ÎÁ÷¿®¤ò³«»Ï¤¹¤ë¡£
179 .TP
180 .B "TIOCCBRK    void"
181 break ¤ò¥ª¥Õ¤Ë¤¹¤ë¡£
182 ¤Ä¤Þ¤ê 0 ¤Î¥Ó¥Ã¥ÈÎó¤ÎÁ÷¿®¤òÄä»ß¤¹¤ë¡£
183 .SS ¥½¥Õ¥È¥¦¥§¥¢¥Õ¥í¡¼À©¸æ
184 .TP
185 .BI "TCXONC     int " arg
186 .I "tcflow(fd, arg)"
187 ¤ÈƱ¤¸¡£
188 .br
189 .BR tcflow (3)
190 ¤Î°ú¤­¿ô
191 .BR TCOOFF ,
192 .BR TCOON ,
193 .BR TCIOFF ,
194 .B TCION
195 ¤ò»²¾È¤¹¤ë¤³¤È¡£
196 .SS "¥Ð¥Ã¥Õ¥¡¤Î¥«¥¦¥ó¥È¤È½ñ¤­½Ð¤· (flush)"
197 .TP
198 .BI "FIONREAD   int *" argp
199 ÆþÎϥХåե¡¤Ë¤¢¤ë¥Ð¥¤¥È¿ô¤ò¼èÆÀ¤¹¤ë¡£
200 .TP
201 .BI "TIOCINQ    int *" argp
202 .B FIONREAD
203 ¤ÈƱ¤¸¡£
204 .TP
205 .BI "TIOCOUTQ   int *" argp
206 ½ÐÎϥХåե¡¤Ë¤¢¤ë¥Ð¥¤¥È¿ô¤ò¼èÆÀ¤¹¤ë¡£
207 .TP
208 .BI "TCFLSH     int " arg
209 .I "tcflush(fd, arg)"
210 ¤ÈƱ¤¸¡£
211 .br
212 .BR tcflush (3)
213 ¤Î°ú¤­¿ô
214 .BR TCIFLUSH ,
215 .BR TCOFLUSH ,
216 .B TCIOFLUSH
217 ¤ò»²¾È¤¹¤ë¤³¤È¡£
218 .SS ÆþÎϤε¶Áõ
219 .TP
220 .BI "TIOCSTI    const char *" argp
221 »ØÄꤵ¤ì¤¿¥Ð¥¤¥È¤òÆþÎÏ¥­¥å¡¼¤ËÁÞÆþ¤¹¤ë¡£
222 .SS ¥³¥ó¥½¡¼¥ë½ÐÎϤΥê¥À¥¤¥ì¥¯¥È
223 .TP
224 .B "TIOCCONS    void"
225 .I /dev/console
226 ¤Þ¤¿¤Ï
227 .I /dev/tty0
228 ¤ËÁ÷¤é¤ì¤ë½ÐÎϤò¡¢»ØÄꤵ¤ì¤¿Ã¼Ëö¥ê¥À¥¤¥ì¥¯¥È¤¹¤ë¡£
229 »ØÄꤵ¤ì¤¿Ã¼Ëö¤¬µ¿»÷üËö (pseudoterminal) ¤Î¥Þ¥¹¥¿¤Î¾ì¹ç¡¢
230 ½ÐÎϤϥ¹¥ì¡¼¥Ö¤ËÁ÷¤é¤ì¤ë¡£
231 ¥Ð¡¼¥¸¥ç¥ó 2.6.10 ¤è¤êÁ°¤Î Linux ¤Ç¤Ï¡¢½ÐÎϤ¬¤Þ¤À¥ê¥À¥¤¥ì¥¯¥È¤µ¤ì¤Æ
232 ¤¤¤Ê¤±¤ì¤Ð¡¢Ã¯¤Ç¤â¥ê¥À¥¤¥ì¥¯¥È¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤ë¡£
233 ¥Ð¡¼¥¸¥ç¥ó 2.6.10 °Ê¹ß¤Ç¤Ï¡¢root
234 .RB ( CAP_SYS_ADMIN
235 ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ä¥×¥í¥»¥¹) ¤À¤±¤¬¥ê¥À¥¤¥ì¥¯¥È¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤ë¡£
236 ½ÐÎϤ¬¤¹¤Ç¤Ë¥ê¥À¥¤¥ì¥¯¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï
237 .B EBUSY
238 ¤¬ÊÖ¤µ¤ì¤ë¤¬¡¢
239 .I /dev/console
240 ¤«
241 .I /dev/tty0
242 ¤ò»Ø¤·¤Æ¤¤¤ë
243 .I fd
244 ¤ËÂФ·¤Æ¤³¤Î ioctl ¤ò»ÈÍѤ¹¤ë¤³¤È¤Ç¡¢¥ê¥À¥¤¥ì¥¯¥È¤ò»ß¤á¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
245 .SS "üËö¤ÎÀ©¸æ"
246 .TP
247 .BI "TIOCSCTTY  int " arg
248 »ØÄꤵ¤ì¤¿Ã¼Ëö¤ò¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ÎÀ©¸æüËö¤Ë¤¹¤ë¡£
249 ¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Ï¥»¥Ã¥·¥ç¥ó¥ê¡¼¥À¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢
250 ¤«¤Ä´û¤ËÀ©¸æüËö¤ò»ý¤Ã¤Æ¤¤¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£
251 ¤³¤ÎüËö¤¬´û¤Ë¾¤Î¥»¥Ã¥·¥ç¥ó¥°¥ë¡¼¥×¤ÎÀ©¸æüËö¤Ç¤¢¤ë¾ì¹ç¡¢
252 ioctl ¤Ï
253 .B EPERM
254 ¤Ç¼ºÇÔ¤¹¤ë¡£¤¿¤À¤·¸Æ¤Ó½Ð¤·¤¿¥æ¡¼¥¶¤¬ root ¤Ç
255 (¤è¤êÀµ³Î¤Ë¤Ï
256 .B CAP_SYS_ADMIN
257 ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ã¤Æ¤¤¤Æ)¡¢¤«¤Ä
258 .I arg
259 ¤¬ 1 ¤Ç¤¢¤ë¾ì¹ç¤ò½ü¤¯¡£
260 ¤³¤Î¾ì¹ç¡¢Ã¼Ëö¤ÏÅð¤Þ¤ì (stolen)¡¢
261 ¤³¤ÎüËö¤òÀ©¸æüËö¤È¤·¤Æ¤¤¤¿Á´¤Æ¤Î¥×¥í¥»¥¹¤ÏüËö¤ò¼º¤¦¡£
262 .TP
263 .B TIOCNOTTY    void
264 »ØÄꤵ¤ì¤¿Ã¼Ëö¤¬¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ÎÀ©¸æüËö¤Ç¤¢¤ë¾ì¹ç¡¢
265 ¤³¤ÎÀ©¸æüËö¤òÊü´þ¤¹¤ë¡£
266 ¥×¥í¥»¥¹¤¬¥»¥Ã¥·¥ç¥ó¥ê¡¼¥À¤Î¾ì¹ç¡¢
267 ¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Ë
268 .B SIGHUP
269 ¤È
270 .B SIGCONT
271 ¤òÁ÷¤ê¡¢¥«¥ì¥ó¥È¥»¥Ã¥·¥ç¥ó¤ÎÁ´¤Æ¤Î¥×¥í¥»¥¹¤ÏÀ©¸æüËö¤ò¼º¤¦¡£
272 .SS "¥°¥ë¡¼¥× ID ¤È¥»¥Ã¥·¥ç¥ó ID ¤Î½èÍý"
273 .TP
274 .BI "TIOCGPGRP  pid_t *" argp
275 À®¸ù¤·¤¿¾ì¹ç¡¢
276 .I "*argp = tcgetpgrp(fd)"
277 ¤ÈƱ¤¸¡£
278 .br
279 ¤³¤ÎüËö¾å¤Î¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥× ID ¤ò¼èÆÀ¤¹¤ë¡£
280 .TP
281 .BI "TIOCSPGRP  const pid_t *" argp
282 .I "tcsetpgrp(fd, *argp)"
283 ¤ÈƱ¤¸¡£
284 .br
285 ¤³¤ÎüËö¤Î¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¥×¥í¥»¥¹¤Î¥°¥ë¡¼¥× ID ¤òÀßÄꤹ¤ë¡£
286 .TP
287 .BI "TIOCGSID   pid_t *" argp
288 »ØÄꤵ¤ì¤¿Ã¼Ëö¤Î¥»¥Ã¥·¥ç¥ó ID ¤ò¼èÆÀ¤¹¤ë¡£
289 üËö¤¬¥Þ¥¹¥¿µ¿»÷üËö¤Þ¤¿¤ÏÀ©¸æüËö¤Ç¤Ê¤¤¾ì¹ç¤Ï¡¢
290 .B ENOTTY
291 ¤Ç¼ºÇÔ¤¹¤ë¡£
292 ´ñ̯¤À¡£
293 .SS ÇÓ¾¥â¡¼¥É
294 .TP
295 .B "TIOCEXCL    void"
296 üËö¤òÇÓ¾¥â¡¼¥É¤Ë¤¹¤ë¡£
297 üËö¤ËÂФ·¤Æ¡¢¤³¤ì°Ê¹ß¤Î
298 .BR open (2)
299 Áàºî¤ò¶Ø»ß¤¹¤ë¡£
300 (root °Ê³°¤Î¾ì¹ç¡¢¤Ä¤Þ¤ê
301 .B CAP_SYS_ADMIN
302 ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤¿¤Ê¤¤¥×¥í¥»¥¹¤Î¾ì¹ç¡¢¤³¤ì°Ê¹ß¤Î
303 .BR open (2)
304 ¤Ï
305 .B EBUSY
306 ¤Ç¼ºÇÔ¤¹¤ë¡£)
307 .TP
308 .B "TIOCNXCL    void"
309 ÇÓ¾¥â¡¼¥É¤ò̵¸ú¤Ë¤¹¤ë¡£
310 .SS "¥é¥¤¥óÀ©¸æ (line discipline)"
311 .TP
312 .BI "TIOCGETD   int *" argp
313 üËö¤Î¥é¥¤¥óÀ©¸æ¤Î¾ðÊó¤ò¼èÆÀ¤¹¤ë¡£
314 .TP
315 .BI "TIOCSETD   const int *" argp
316 üËö¤Î¥é¥¤¥óÀ©¸æ¤Î¾ðÊó¤òÀßÄꤹ¤ë¡£
317 .SS "µ¿»÷üËö¤Î ioctl"
318 .TP
319 .BI "TIOCPKT    const int *" argp
320 ¥Ñ¥±¥Ã¥È¥â¡¼¥É¤òÍ­¸ú
321 .RI (* argp
322 ¤¬ 0 °Ê³°¤Î¾ì¹ç) ¤Þ¤¿¤Ï̵¸ú¤Ë¤¹¤ë¡£
323 µ¿»÷üËö¤Î¥Þ¥¹¥¿Â¦¤Ë¤Î¤ßŬÍѤǤ­¤ë (¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï
324 .B ENOTTY
325 ¤òÊÖ¤¹)¡£
326 ¥Ñ¥±¥Ã¥È¥â¡¼¥É¤Ç¤Ï¡¢¤½¤Î¸å¤Ë¼Â¹Ô¤µ¤ì¤ë
327 .BR read (2)
328 ¤Ï¡¢Ãͤ¬ 0 °Ê³°¤Î 1 ¤Ä¤ÎÀ©¸æ¥Ð¥¤¥È¤ò´Þ¤à¥Ñ¥±¥Ã¥È¤«¡¢
329 Ãͤ¬ 0 ¤Î 1 ¥Ð¥¤¥È (\(aq\\0\(aq) ¤Ëµ¿»÷üËö¤Î¥¹¥ì¡¼¥Ö¦¤Ç½ñ¤­¹þ¤Þ¤ì¤¿
330 ¥Ç¡¼¥¿¤¬Â³¤¯¥Ñ¥±¥Ã¥È¤òÊÖ¤¹¡£
331 ºÇ½é¤Î¥Ð¥¤¥È¤¬
332 .B TIOCPKT_DATA
333 (0) ¤Ç¤Ê¤¤¾ì¹ç¡¢°Ê²¼¤Î¥Ó¥Ã¥È¤Î 1 ¤Ä°Ê¾å¤ò OR ¤·¤¿¤â¤Î¤Ç¤¢¤ë:
334
335 .nf
336 TIOCPKT_FLUSHREAD   Ã¼Ëö¤ÎÆɤ߹þ¤ß¥­¥å¡¼¤¬¥Õ¥é¥Ã¥·¥å (flush) ¤µ¤ì¤ë¡£
337 TIOCPKT_FLUSHWRITE  Ã¼Ëö¤Î½ñ¤­½Ð¤·¥­¥å¡¼¤¬¥Õ¥é¥Ã¥·¥å¤µ¤ì¤ë¡£
338 TIOCPKT_STOP        Ã¼Ëö¤Ø¤Î½ÐÎϤ¬Ää»ß¤µ¤ì¤ë¡£
339 TIOCPKT_START       Ã¼Ëö¤Ø¤Î½ÐÎϤ¬ºÆ³«¤µ¤ì¤ë¡£
340 TIOCPKT_DOSTOP      ³«»Ïʸ»ú¤È½ªÎ»Ê¸»ú¤¬ \fB^S\fP/\fB^Q\fP ¤Ç¤¢¤ë¡£
341 TIOCPKT_NOSTOP      ³«»Ïʸ»ú¤È½ªÎ»Ê¸»ú¤¬ \fB^S\fP/\fB^Q\fP ¤Ç¤Ê¤¤¡£
342 .fi
343
344 ¤³¤Î¥â¡¼¥É¤¬»È¤ï¤ì¤Æ¤¤¤ë¾ì¹ç¡¢
345 À©¸æ¾õÂÖ¾ðÊó¤Î¸ºß¤¬¥Þ¥¹¥¿Â¦¤«¤éÆɤ߹þ¤á¤ë¤«¤Ï¡¢
346 Î㳰Ū¤Ê¾ò·ï¤Ç
347 .BR select (2)
348 ¤ò»È¤¦¤³¤È¤Ë¤è¤êÃΤ뤳¤È¤¬¤Ç¤­¤ë¡£
349
350 ¤³¤Î¥â¡¼¥É¤Ï
351 .BR rlogin (1)
352 ¤È
353 .BR rlogind (8)
354 ¤Ç»È¤ï¤ì¡¢¥ê¥â¡¼¥È¥¨¥³¡¼¤Î¥ê¥â¡¼¥È¥í¥°¥¤¥ó¤È
355 ¥í¡¼¥«¥ë¤Ç¤Î \fB^S\fP/\fB^Q\fP ¥Õ¥í¡¼À©¸æ¤Î¥ê¥â¡¼¥È¥í¥°¥¤¥ó¤ò¼ÂÁõ¤·¤Æ¤¤¤ë¡£
356
357 BSD ¤Î ioctl ¤Ç¤¢¤ë
358 .BR TIOCSTOP ,
359 .BR TIOCSTART ,
360 .BR TIOCUCNTL ,
361 .B TIOCREMOTE
362 ¤Ï¡¢Linux ¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£
363 .SS ¥â¥Ç¥àÀ©¸æ
364 .TP
365 .BI "TIOCMGET   int *" argp
366 ¥â¥Ç¥à¥Ó¥Ã¥ÈÎó¤Î¾õÂÖ¤ò¼èÆÀ¤¹¤ë¡£
367 .TP
368 .BI "TIOCMSET   const int *" argp
369 ¥â¥Ç¥à¥Ó¥Ã¥ÈÎó¤Î¾õÂÖ¤òÀßÄꤹ¤ë¡£
370 .TP
371 .BI "TIOCMBIC   const int *" argp
372 »ØÄꤵ¤ì¤¿¥â¥Ç¥à¥Ó¥Ã¥ÈÎó¤ò¥¯¥ê¥¢¤¹¤ë¡£
373 .TP
374 .BI "TIOCMBIS   const int *" argp
375 »ØÄꤵ¤ì¤¿¥â¥Ç¥à¥Ó¥Ã¥ÈÎó¤òÀßÄꤹ¤ë¡£
376 .LP
377 ¤³¤ì¤é¤Î 4 ¤Ä¤Î ioctl ¤Ç»È¤ï¤ì¤ë¥Ó¥Ã¥È¤Ï°Ê²¼¤ÎÄ̤ê:
378
379 .nf
380 TIOCM_LE        DSR (data set ready/line enable)
381 TIOCM_DTR       DTR (data terminal ready)
382 TIOCM_RTS       RTS (request to send)
383 TIOCM_ST        Secondary TXD (transmit)
384 TIOCM_SR        Secondary RXD (receive)
385 TIOCM_CTS       CTS (clear to send)
386 TIOCM_CAR       DCD (data carrier detect)
387 TIOCM_CD         TIOCM_CAR ¤ò»²¾È¡£
388 TIOCM_RNG       RNG (ring)
389 TIOCM_RI         TIOCM_RNG ¤ò»²¾È¡£
390 TIOCM_DSR       DSR (data set ready)
391 .fi
392 .SS "²óÀþ¤ò¥í¡¼¥«¥ë¤È¤·¤Æ¥Þ¡¼¥¯¤¹¤ë"
393 .TP
394 .BI "TIOCGSOFTCAR       int *" argp
395 ("¥½¥Õ¥È¥¦¥§¥¢¥­¥ã¥ê¥¢¥Õ¥é¥°¤Î¼èÆÀ")
396 .I termios
397 ¹½Â¤ÂΤΠc_cflag ¥Õ¥£¡¼¥ë¥É¤Î
398 .B CLOCAL
399 ¥Õ¥é¥°¤Î¾õÂÖ¤ò¼èÆÀ¤¹¤ë¡£
400 .TP
401 .BI "TIOCSSOFTCAR       const int *" argp
402 ("¥½¥Õ¥È¥¦¥§¥¢¥­¥ã¥ê¥¢¥Õ¥é¥°¤ÎÀßÄê")
403 .RI * argp
404 ¤¬ 0 °Ê³°¤Î¾ì¹ç¡¢
405 .I termios
406 ¹½Â¤ÂΤÎ
407 .B CLOCAL
408 ¥Õ¥é¥°¤òÀßÄꤹ¤ë¡£
409 0 ¤Î¾ì¹ç¤Ï¥¯¥ê¥¢¤¹¤ë¡£
410 .LP
411 ¥é¥¤¥ó¤Î
412 .B CLOCAL
413 ¥Õ¥é¥°¤¬¥ª¥Õ¤Î¾ì¹ç¡¢
414 ¥Ï¡¼¥É¥¦¥§¥¢¥­¥ã¥ê¥¢¸¡½Ð (hardware carrier detect, DCD) ¥·¥°¥Ê¥ë¤¬½ÅÍפǤ¢¤ê¡¢
415 .B O_NONBLOCK
416 ¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤Ê¤¤¸Â¤ê¡¢Âбþ¤¹¤ëüËö¤Î
417 .BR open (2)
418 ¤Ï DCD ¤¬¼¨¤µ¤ì¤ë¤Þ¤Ç¥Ö¥í¥Ã¥¯¤µ¤ì¤ë¡£
419 .B CLOCAL
420 ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢
421 ¥é¥¤¥ó¤Ï¾ï¤Ë DCD ¤¬¼¨¤µ¤ì¤Æ¤¤¤ë¤«¤Î¤è¤¦¤ËÆ°ºî¤¹¤ë¡£
422 ¥½¥Õ¥È¥¦¥§¥¢¥­¥ã¥ê¥¢¥Õ¥é¥°¤Ï¡¢¥í¡¼¥«¥ë¥Ç¥Ð¥¤¥¹¤Ç¤ÏÄ̾ï¤Ï¥ª¥ó¤Ë¤Ê¤Ã¤Æ¤ª¤ê¡¢
423 ¥â¥Ç¥à¤Î¥é¥¤¥ó¤Ç¤Ï¥ª¥Õ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£
424 .SS "Linux ¸ÇÍ­¤Î ioctl"
425 .B TIOCLINUX
426 ioctl ¤Ë¤Ä¤¤¤Æ¤Ï¡¢
427 .BR console_ioctl (4)
428 ¤ò»²¾È¤¹¤ë¤³¤È¡£
429 .SS ¥«¡¼¥Í¥ë¥Ç¥Ð¥Ã¥®¥ó¥°
430 .B "#include <linux/tty.h>"
431 .TP
432 .BI "TIOCTTYGSTRUCT     struct tty_struct *" argp
433 .I fd
434 ¤ËÂбþ¤¹¤ë
435 .I tty_struct
436 ¤ò¼èÆÀ¤¹¤ë¡£
437 .\" .SS "¥·¥ê¥¢¥ë¾ðÊó"
438 .\" .BR "#include <linux/serial.h>"
439 .\" .sp
440 .\" .TP
441 .\" .BI "TIOCGSERIAL    struct serial_struct *" argp
442 .\" ¥·¥ê¥¢¥ë¾ðÊó¤ò¼èÆÀ¤¹¤ë¡£
443 .\" .TP
444 .\" .BI "TIOCSSERIAL    const struct serial_struct *" argp
445 .\" ¥·¥ê¥¢¥ë¾ðÊó¤òÀßÄꤹ¤ë¡£
446 .SH ÊÖ¤êÃÍ
447 .BR ioctl (2)
448 ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤òÊÖ¤¹¡£
449 ¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤òÊÖ¤·¡¢
450 .I errno
451 ¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£
452 .SH ¥¨¥é¡¼
453 .TP
454 .B EINVAL
455 ÉÔÀµ¤Ê¥³¥Þ¥ó¥É°ú¤­¿ô¤Ç¤¢¤ë¡£
456 .TP
457 .B ENOIOCTLCMD
458 ÉÔÌÀ¤Ê¥³¥Þ¥ó¥É¤Ç¤¢¤ë¡£
459 .TP
460 .B ENOTTY
461 .I fd
462 ¤¬ÉÔŬÀڤǤ¢¤ë¡£
463 .TP
464 .B EPERM
465 ¸¢¸Â¤¬ÉÔ­¤·¤Æ¤¤¤ë¡£
466 .SH Îã
467 ¥·¥ê¥¢¥ë¥Ý¡¼¥È¤Î DTR ¤Î¾õÂÖ¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡£
468
469 .nf
470 #include <termios.h>
471 #include <fcntl.h>
472 #include <sys/ioctl.h>
473
474 int
475 main(void)
476 {
477     int fd, serial;
478
479     fd = open("/dev/ttyS0", O_RDONLY);
480     ioctl(fd, TIOCMGET, &serial);
481     if (serial & TIOCM_DTR)
482         puts("TIOCM_DTR ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£");
483     else
484         puts("TIOCM_DTR ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¡£");
485     close(fd);
486 }
487 .fi
488 .SH ´ØÏ¢¹àÌÜ
489 .BR ioctl (2),
490 .BR termios (3),
491 .BR console_ioctl (4),
492 .BR pty (7)
493 .\"
494 .\" FIONBIO                     const int *
495 .\" FIONCLEX                    void
496 .\" FIOCLEX                     void
497 .\" FIOASYNC                    const int *
498 .\" serial.c ¤è¤ê:
499 .\" TIOCSERCONFIG               void
500 .\" TIOCSERGWILD                int *
501 .\" TIOCSERSWILD                const int *
502 .\" TIOCSERGSTRUCT              struct async_struct *
503 .\" TIOCSERGETLSR               int *
504 .\" TIOCSERGETMULTI             struct serial_multiport_struct *
505 .\" TIOCSERSETMULTI             const struct serial_multiport_struct *
506 .\" TIOCGSERIAL, TIOCSSERIAL (¾åµ­¤ò»²¾È)