📄 48.html
字号:
<html>
<head>
<title>include/termios.h</title>
<meta name='robots' content='noindex,nofollow'>
<meta name='generator' content='GLOBAL-5.4.1'>
</head>
<body text='#191970' bgcolor='#f5f5dc' vlink='gray'>
<a name='TOP'><h2><a href='../mains.html'>root</a>/<a href='../files/99.html'>include</a>/termios.h</h2>
<i><font color='green'>/* [<][>][^][v][top]<a href='#BOTTOM'>[bottom]</a><a href='../mains.html'>[index]</a><a href='../help.html'>[help]</a> */</font></i>
<hr>
<h2><a href='../J/48.html' title='Multiple included from 2 places.'>INCLUDED FROM</a></h2>
<hr>
<pre>
<a name='L1'><font color='darkred'>#ifndef</font> <a href='../S/48.html#L2' title='Defined at 2 in include/termios.h.'>_TERMIOS_H</a>
<a name='L2'><font color='darkred'>#define</font> <a href='../S/48.html#L1' title='Refered from 1 in include/termios.h.'>_TERMIOS_H</a>
<a name='L3'>
<a name='L4'><font color='darkred'>#define</font> <a href='../R/288.html' title='Multiple refered from 7 places.'>TTY_BUF_SIZE</a> 1024 <i><font color='green'>// tty 中的缓冲区长度。</font></i>
<a name='L5'>
<a name='L6'><i><font color='green'>/* 0x54 is just a magic number to make these relatively uniqe ('T') */</font></i>
<a name='L7'><i><font color='green'>/* 0x54 只是一个魔数,目的是为了使这些常数唯一('T') */</font></i>
<a name='L8'>
<a name='L9'><i><font color='green'>// tty 设备的ioctl 调用命令集。ioctl 将命令编码在低位字中。</font></i>
<a name='L10'><i><font color='green'>// 下面名称TC[*]的含义是tty 控制命令。</font></i>
<a name='L11'><i><font color='green'>// 取相应终端termios 结构中的信息(参见tcgetattr())。</font></i>
<a name='L12'><font color='darkred'>#define</font> <a href='../S/66.html#L191' title='Refered from 191 in kernel/chr_drv/tty_ioctl.c.'>TCGETS</a> 0x5401
<a name='L13'><i><font color='green'>// 设置相应终端termios 结构中的信息(参见tcsetattr(),TCSANOW)。</font></i>
<a name='L14'><font color='darkred'>#define</font> <a href='../S/66.html#L202' title='Refered from 202 in kernel/chr_drv/tty_ioctl.c.'>TCSETS</a> 0x5402
<a name='L15'><i><font color='green'>// 在设置终端termios 的信息之前,需要先等待输出队列中所有数据处理完(耗尽)。对于修改参数</font></i>
<a name='L16'><i><font color='green'>// 会影响输出的情况,就需要使用这种形式(参见tcsetattr(),TCSADRAIN 选项)。</font></i>
<a name='L17'><font color='darkred'>#define</font> <a href='../S/66.html#L198' title='Refered from 198 in kernel/chr_drv/tty_ioctl.c.'>TCSETSW</a> 0x5403
<a name='L18'><i><font color='green'>// 在设置termios 的信息之前,需要先等待输出队列中所有数据处理完,并且刷新(清空)输入队列。</font></i>
<a name='L19'><i><font color='green'>// 再设置(参见tcsetattr(),TCSAFLUSH 选项)。</font></i>
<a name='L20'><font color='darkred'>#define</font> <a href='../S/66.html#L194' title='Refered from 194 in kernel/chr_drv/tty_ioctl.c.'>TCSETSF</a> 0x5404
<a name='L21'><i><font color='green'>// 取相应终端termio 结构中的信息(参见tcgetattr())。</font></i>
<a name='L22'><font color='darkred'>#define</font> <a href='../S/66.html#L205' title='Refered from 205 in kernel/chr_drv/tty_ioctl.c.'>TCGETA</a> 0x5405
<a name='L23'><i><font color='green'>// 设置相应终端termio 结构中的信息(参见tcsetattr(),TCSANOW 选项)。</font></i>
<a name='L24'><font color='darkred'>#define</font> <a href='../S/66.html#L216' title='Refered from 216 in kernel/chr_drv/tty_ioctl.c.'>TCSETA</a> 0x5406
<a name='L25'><i><font color='green'>// 在设置终端termio 的信息之前,需要先等待输出队列中所有数据处理完(耗尽)。对于修改参数</font></i>
<a name='L26'><i><font color='green'>// 会影响输出的情况,就需要使用这种形式(参见tcsetattr(),TCSADRAIN 选项)。</font></i>
<a name='L27'><font color='darkred'>#define</font> <a href='../S/66.html#L212' title='Refered from 212 in kernel/chr_drv/tty_ioctl.c.'>TCSETAW</a> 0x5407
<a name='L28'><i><font color='green'>// 在设置termio 的信息之前,需要先等待输出队列中所有数据处理完,并且刷新(清空)输入队列。</font></i>
<a name='L29'><i><font color='green'>// 再设置(参见tcsetattr(),TCSAFLUSH 选项)。</font></i>
<a name='L30'><font color='darkred'>#define</font> <a href='../S/66.html#L208' title='Refered from 208 in kernel/chr_drv/tty_ioctl.c.'>TCSETAF</a> 0x5408
<a name='L31'><i><font color='green'>// 等待输出队列处理完毕(空),如果参数值是0,则发送一个break(参见tcsendbreak(),tcdrain())。</font></i>
<a name='L32'><font color='darkred'>#define</font> <a href='../S/66.html#L219' title='Refered from 219 in kernel/chr_drv/tty_ioctl.c.'>TCSBRK</a> 0x5409
<a name='L33'><i><font color='green'>// 开始/停止控制。如果参数值是0,则挂起输出;如果是1,则重新开启挂起的输出;如果是2,则挂起</font></i>
<a name='L34'><i><font color='green'>// 输入;如果是3,则重新开启挂起的输入(参见tcflow())。</font></i>
<a name='L35'><font color='darkred'>#define</font> <a href='../S/66.html#L227' title='Refered from 227 in kernel/chr_drv/tty_ioctl.c.'>TCXONC</a> 0x540A
<a name='L36'><i><font color='green'>//刷新已写输出但还没发送或已收但还没有读数据。如果参数是0,则刷新(清空)输入队列;如果是1,</font></i>
<a name='L37'><i><font color='green'>// 则刷新输出队列;如果是2,则刷新输入和输出队列(参见tcflush())。</font></i>
<a name='L38'><font color='darkred'>#define</font> <a href='../S/66.html#L231' title='Refered from 231 in kernel/chr_drv/tty_ioctl.c.'>TCFLSH</a> 0x540B
<a name='L39'><i><font color='green'>// 下面名称TIOC[*]的含义是tty 输入输出控制命令。</font></i>
<a name='L40'><i><font color='green'>// 设置终端串行线路专用模式。</font></i>
<a name='L41'><font color='darkred'>#define</font> <a href='../S/66.html#L246' title='Refered from 246 in kernel/chr_drv/tty_ioctl.c.'>TIOCEXCL</a> 0x540C
<a name='L42'><i><font color='green'>// 复位终端串行线路专用模式。</font></i>
<a name='L43'><font color='darkred'>#define</font> <a href='../S/66.html#L249' title='Refered from 249 in kernel/chr_drv/tty_ioctl.c.'>TIOCNXCL</a> 0x540D
<a name='L44'><i><font color='green'>// 设置tty 为控制终端。(TIOCNOTTY - 禁止tty 为控制终端)。</font></i>
<a name='L45'><font color='darkred'>#define</font> <a href='../S/66.html#L252' title='Refered from 252 in kernel/chr_drv/tty_ioctl.c.'>TIOCSCTTY</a> 0x540E
<a name='L46'><i><font color='green'>// 读取指定终端设备进程的组id(参见tcgetpgrp())。</font></i>
<a name='L47'><font color='darkred'>#define</font> <a href='../S/66.html#L255' title='Refered from 255 in kernel/chr_drv/tty_ioctl.c.'>TIOCGPGRP</a> 0x540F
<a name='L48'><i><font color='green'>// 设置指定终端设备进程的组id(参见tcsetpgrp())。</font></i>
<a name='L49'><font color='darkred'>#define</font> <a href='../S/66.html#L260' title='Refered from 260 in kernel/chr_drv/tty_ioctl.c.'>TIOCSPGRP</a> 0x5410
<a name='L50'><i><font color='green'>// 返回输出队列中还未送出的字符数。</font></i>
<a name='L51'><font color='darkred'>#define</font> <a href='../S/66.html#L264' title='Refered from 264 in kernel/chr_drv/tty_ioctl.c.'>TIOCOUTQ</a> 0x5411
<a name='L52'><i><font color='green'>// 模拟终端输入。该命令以一个指向字符的指针作为参数,并假装该字符是在终端上键入的。用户必须</font></i>
<a name='L53'><i><font color='green'>// 在该控制终端上具有超级用户权限或具有读许可权限。</font></i>
<a name='L54'><font color='darkred'>#define</font> <a href='../S/66.html#L274' title='Refered from 274 in kernel/chr_drv/tty_ioctl.c.'>TIOCSTI</a> 0x5412
<a name='L55'><i><font color='green'>// 读取终端设备窗口大小信息(参见winsize 结构)。</font></i>
<a name='L56'><font color='darkred'>#define</font> <a href='../S/66.html#L278' title='Refered from 278 in kernel/chr_drv/tty_ioctl.c.'>TIOCGWINSZ</a> 0x5413
<a name='L57'><i><font color='green'>// 设置终端设备窗口大小信息(参见winsize 结构)。</font></i>
<a name='L58'><font color='darkred'>#define</font> <a href='../S/66.html#L281' title='Refered from 281 in kernel/chr_drv/tty_ioctl.c.'>TIOCSWINSZ</a> 0x5414
<a name='L59'><i><font color='green'>// 返回modem 状态控制引线的当前状态比特位标志集(参见下面185-196 行)。</font></i>
<a name='L60'><font color='darkred'>#define</font> <a href='../S/66.html#L284' title='Refered from 284 in kernel/chr_drv/tty_ioctl.c.'>TIOCMGET</a> 0x5415
<a name='L61'><i><font color='green'>// 设置单个modem 状态控制引线的状态(true 或false)(Individual control line Set)。</font></i>
<a name='L62'><font color='darkred'>#define</font> <a href='../S/66.html#L287' title='Refered from 287 in kernel/chr_drv/tty_ioctl.c.'>TIOCMBIS</a> 0x5416
<a name='L63'><i><font color='green'>// 复位单个modem 状态控制引线的状态(Individual control line clear)。</font></i>
<a name='L64'><font color='darkred'>#define</font> <a href='../S/66.html#L290' title='Refered from 290 in kernel/chr_drv/tty_ioctl.c.'>TIOCMBIC</a> 0x5417
<a name='L65'><i><font color='green'>// 设置modem 状态引线的状态。如果某一比特位置位,则modem 对应的状态引线将置为有效。</font></i>
<a name='L66'><font color='darkred'>#define</font> <a href='../S/66.html#L293' title='Refered from 293 in kernel/chr_drv/tty_ioctl.c.'>TIOCMSET</a> 0x5418
<a name='L67'><i><font color='green'>// 读取软件载波检测标志(1 - 开启;0 - 关闭)。</font></i>
<a name='L68'><i><font color='green'>// 对于本地连接的终端或其它设备,软件载波标志是开启的,对于使用modem 线路的终端或设备则</font></i>
<a name='L69'><i><font color='green'>// 是关闭的。为了能使用这两个ioctl 调用,tty 线路应该是以O_NDELAY 方式打开的,这样open()</font></i>
<a name='L70'><i><font color='green'>// 就不会等待载波。</font></i>
<a name='L71'><font color='darkred'>#define</font> <a href='../S/66.html#L296' title='Refered from 296 in kernel/chr_drv/tty_ioctl.c.'>TIOCGSOFTCAR</a> 0x5419
<a name='L72'><i><font color='green'>// 设置软件载波检测标志(1 - 开启;0 - 关闭)。</font></i>
<a name='L73'><font color='darkred'>#define</font> <a href='../S/66.html#L299' title='Refered from 299 in kernel/chr_drv/tty_ioctl.c.'>TIOCSSOFTCAR</a> 0x541A
<a name='L74'><i><font color='green'>// 返回输入队列中还未取走字符的数目。</font></i>
<a name='L75'><font color='darkred'>#define</font> <a href='../S/66.html#L269' title='Refered from 269 in kernel/chr_drv/tty_ioctl.c.'>TIOCINQ</a> 0x541B
<a name='L76'>
<a name='L77'><i><font color='green'>// 窗口大小(Window size)属性结构。在窗口环境中可用于基于屏幕的应用程序。</font></i>
<a name='L78'><i><font color='green'>// ioctls 中的TIOCGWINSZ 和TIOCSWINSZ 可用来读取或设置这些信息。</font></i>
<a name='L79'><b>struct</b> winsize
<a name='L80'><font color='red'>{</font>
<a name='L81'> <b>unsigned</b> <b>short</b> ws_row; <i><font color='green'>// 窗口字符行数。</font></i>
<a name='L82'> <b>unsigned</b> <b>short</b> ws_col; <i><font color='green'>// 窗口字符列数。</font></i>
<a name='L83'> <b>unsigned</b> <b>short</b> ws_xpixel; <i><font color='green'>// 窗口宽度,象素值。</font></i>
<a name='L84'> <b>unsigned</b> <b>short</b> ws_ypixel; <i><font color='green'>// 窗口高度,象素值。</font></i>
<a name='L85'><font color='red'>}</font>;
<a name='L86'>
<a name='L87'><i><font color='green'>// AT&T 系统V 的termio 结构。</font></i>
<a name='L88'><font color='darkred'>#define</font> <a href='../R/134.html' title='Multiple refered from 3 places.'>NCC</a> 8 <i><font color='green'>// termio 结构中控制字符数组的长度。</font></i>
<a name='L89'><b>struct</b> termio
<a name='L90'><font color='red'>{</font>
<a name='L91'> <b>unsigned</b> <b>short</b> c_iflag; <i><font color='green'>/* input mode flags */</font></i><i><font color='green'>// 输入模式标志。</font></i>
<a name='L92'> <b>unsigned</b> <b>short</b> c_oflag; <i><font color='green'>/* output mode flags */</font></i><i><font color='green'>// 输出模式标志。</font></i>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -