termios.h 文件
用途
定义 termios 文件的结构,该文件提供了用于实现 POSIX 兼容性的终端接口。
描述
/usr/include/termios.h 文件包含适用于终端文件的子例程所使用的信息。 为了与 POSIX 标准兼容,需要此文件中的定义,值和结构。 termios.h 文件还支持 ioctl 调制解调器控制操作。
一般终端接口信息包含在 termio.h 文件中。 termio.h 文件中的 termio 结构定义基本输入,输出,控制和行规程方式。 如果将调用程序标识为需要 POSIX 兼容性,那么将实现 termios.h 文件中的 termios 结构和其他 POSIX 控制包信息。 窗口和终端大小操作使用 winsize 结构,此结构在 ioctl.h 文件中定义。 termios.h 文件中的 termios 结构包含以下字段:
- c_iflag
- c_oflag
- c_cflag
- c_lflag
- c_cc
termios.h 文件还 定义值 用于 特切塔特尔 子例程的以下参数:
- OptionalActions
- QueueSelector
- 操作
termios.h 文件还支持 ioctl 调制解调器控制操作。
- 字段描述
- c_iflag
- 描述基本终端输入控件。 初始输入/控制值为所有位清除。 可能的输入方式为:
- IGNBRK
- 忽略中断条件。 在异步串行数据传输的上下文中, 中断条件 定义为零值位的序列,该序列将持续超过发送一个字节所需的时间。 零值位的整个序列被解释为单个中断条件,即使它持续了相当于一个字节以上的时间量。 如果设置了 IGNBRK 标志,那么将忽略在输入上检测到的中断条件,这意味着它不会放在输入队列上,因此不会被任何进程读取。
- BRKINT
- 中断条件下的信号中断。 如果未设置 IGNBRK 标志,并且设置了 BRKINT 标志,那么中断条件会清空输入和输出队列。 如果该终端是前台进程组的控制终端,那么中断条件将向该前台进程组生成 SIGINT 信号。 如果既未设置 IGNBRK ,也未设置 BRKINT 标志,那么会将中断条件读取为单个 \0 ,或者如果将 PARMRK 标志设置为 \377 , \0 和 \0。
- IGNPAR
- 忽略带有奇偶错误的字符。 如果设置了此标志,那么将忽略具有帧或奇偶错误 (而不是中断) 的字节。
- PARMRK
- 标记奇偶错误。 如果设置了 PARMRK 标志,并且未设置 IGNPAR 标志,那么会将带有帧或奇偶错误 (除中断之外) 的字节作为三个字符的序列 \377 , \0 X提供给应用程序,其中 \377 , \0 是每个序列前面的两个字符的标志, X 是接收到的错误字符的数据。 为了避免在此情况下出现岐义,如果未设置 ISTRIP 标志,那么会将有效字符 \377 作为 \377 和 \377 提供给应用程序。 如果既未设置 IGNPAR 也未设置 PARMRK 标志,那么会将框架划分或奇偶性校验错误 (除中断之外) 作为单个字符 \0 提供给应用程序。
- INPCK
- 启用输入奇偶性校验检查。 如果设置了此标志,那么将启用输入奇偶性校验检查。 如果未设置,那么将禁用输入奇偶性校验检查。 这允许在没有输入奇偶性校验错误的情况下生成输出奇偶性校验。
- ISTRIP
- 除去字符。 如果设置了此标志,那么首先将有效输入字符除去为 7 位。 否则,将处理所有 8 位。
- INLCR
- 在输入时,将换行符 (NL) 映射到回车符 (CR)。 如果设置了此标志,那么接收到的 NL 字符将转换为 CR 字符。
- IGNCR
- 忽略 CR 字符。 如果设置了此标志,那么将忽略且不读取接收到的 CR 字符。
- ICRNL
- 将 CR 字符映射到输入上的 NL 字符。 如果设置了 ICRNL 标志,但未设置 IGNCR 标志,那么会将接收到的 CR 字符转换为 NL 字符。
- IUCLC
- 在输入时将大写映射到小写。 如果设置了此标志,那么会将接收到的大写,字母字符转换为相应的小写字符。
- IXON
- 启用启动和停止输出控制。 如果设置了此标志,那么接收到的 STOP 字符将暂挂输出,接收到的 START 字符将重新启动输出。 如果设置了 IXON 标志,那么不会读取 START 和 STOP 字符,而仅执行流量控制功能。 如果未设置 IXON 标志,那么会读取 START 和 STOP 字符。
- IXANY
- 启用任何字符以重新启动输出。 如果设置了此标志,那么任何输入字符都将重新启动已暂挂的输出。
- IXOFF
- 启用启动/停止输入控制。 如果设置了此标志,那么系统将在输入队列几乎已满时发送 STOP 字符,并在读取足够的输入时发送 START 字符,使该队列几乎再次为空。
- IMAXBEL
- 如果输入流溢出,那么将回传 ASCII BEL 字符。 未存储进一步的输入,但输入流中已存在的输入不会丢失。 如果未设置此标志,那么不会回传 BEL 字符; 如果输入流溢出,那么将废弃输入队列中的输入。 此函数还要求设置 IEXTEN 位。
- c_oflag
- 指定系统处理输出的方式。 初始输出控制值为 "所有位都清除"。 可能的输出方式为:
- OPOST
- 流程后输出。 如果设置了此标志,那么将按剩余标志指示的方式对输出字符进行后处理。 否则,将在不更改的情况下传输字符。
- OLUC
- 在输出中将小写映射到大写。 如果设置了此标志,那么将以相应的大写字符形式传输小写字母字符。 此标志通常与 IUCLC 输入方式配合使用。
- ONLCR
- 在输出时将 NL 映射到 CR-NL。 如果设置了此标志,那么 NL 字符将作为 CR-NL 字符对进行传输。
- OCRNL
- 在输出时将 CR 映射到 NL。 如果设置了此标志,那么 CR 字符将作为 NL 字符进行传输。
- ONOCR
- 指示第 0 列没有 CR 输出。 如果设置了此标志,那么在第 0 列 (第一个位置) 时不会发送 CR 字符。
- ONLRET
- NL 执行 CR 功能。 如果设置了此标志,那么会假定 NL 字符执行回车符功能。 将列指针设置为 0 ,并使用为回车符指定的延迟。 如果既未设置 ONLCR, OCRNL, ONOCR,也未设置 ONLRET 标志,那么将假定 NL 字符仅执行换行功能。 列指针将保持不变。 如果实际传输 CR 字符,那么列指针将设置为 0。
延迟位指定当将某些字符发送到终端时,传输停止的时间长度以允许机械或其他移动。 实际的延迟取决于线路速度和系统负载。
- OFILL
- 使用填充字符进行延迟。 如果设置了此标志,那么将发送填充字符以进行延迟而不是定时延迟。 这对于只需要最小延迟的高波特率终端很有用。
- 奥夫德尔
- 如果设置了此标志,那么填充字符为 DEL。 如果未设置此标志,那么填充字符为 NULL。
- NLDLY
- 选择新行的字符延迟。 这是在与 NL0 和 NL1: 进行比较之前要使用的掩码
- NL0
- 指定无延迟。
- NL1
- 指定大约 0.10 秒的延迟。 如果设置了 ONLRET 标志,那么将使用回车延迟而不是换行符延迟。 如果设置了 OFILL 标志,那么将传输两个填充字符。
- CRDLY
- 选择回车延迟数。 这是在与 CR0, CR1, CR2和 CR3: 进行比较之前要使用的掩码
- CR0
- 指定无延迟。
- CR1
- 指定延迟从属于当前列位置。 如果设置了 OFILL 标志,那么此延迟将传输两个填充字符。
- CR2
- 指定大约 0.10 秒的延迟。 如果设置了 OFILL 标志,那么此延迟将传输四个填充字符。
- CR3
- 指定大约 0.15 秒的延迟。
- 表 DLY
- 选择水平选项卡延迟。 这是在与 TAB0, TAB1, TAB2和 TAB3进行比较之前要使用的掩码。 如果设置了 OFILL 标志,那么这些延迟中的任何延迟 ( TAB3除外) 都将传输两个填充字符。
- TAB0
- 指定无延迟。
- TAB1
- 指定延迟从属于当前列位置。 如果设置了 OFILL 标志,那么将传输两个填充字符。
- TAB2
- 指定大约 0.10 秒的延迟。
- TAB3
- 指定要将选项卡展开为空格。
- BSDLY
- 选择退格延迟。 这是在与 BS0 和 BS1: 进行比较之前要使用的掩码
- BS0
- 指定无延迟。
- BS1
- 指定大约 0.05 秒的延迟。 如果设置了 OFILL 标志,那么此延迟将传输一个填充字符。
- VTDLY
- 选择垂直选项卡延迟。 这是在与 VT0 和 VT1: 进行比较之前要使用的掩码
- VT0
- 指定无延迟。
- VT1
- 指定大约 2 秒的延迟。
- FDLY
- 选择换页延迟数。 这是在与 FF0 和 FF1: 进行比较之前要使用的掩码
- FF0
- 指定无延迟。
- FF1
- 指定大约 2 秒的延迟。
- c_cflag
- 描述了终端的硬件控制。 除基本控制方式外,此字段还使用以下控制字符:
- CBAUD
- 指定波特率。 这些位指定了连接的波特率。 对于任何特定硬件,将忽略不可能的速度更改。
- B50
- 50 波特
- B75
- 75 波德
- B110
- 110 波特
- B134
- 134.5 波特。
- B150
- 150 波特
- B200
- 200 波特
- B300
- 300 波特
- B600
- 600 波特
- B1200
- 1200 波特
- B1800
- 1800 波特
- B2400
- 2400 波特。
- B4800
- 4800 波特
- B9600
- 9600 波特
- B19200
- 19200 波德
- B38400
- 38400 波特
- 扩展
- 外部 A
- 扩展
- 外部 B。
- CSIZE
- 指定字符大小。 这些位指定发送和接收操作的字符大小 (以位为单位)。 字符大小不包括奇偶性校验位 (如果使用了奇偶性校验位):
- CS5
- 5 5 位
- CS6
- 6 位
- CS7
- 7 位
- CS8
- 8 8 位。
- CSTOPB
- 指定停止位的数目。 如果设置了此标志,那么发送 2 个停止位; 否则,仅发送 1 个停止位。
- CREAD
- 启用接收方。 如果设置了此标志,那么将启用接收方。 否则,不会接收到字符。
- PARENB
- 启用奇偶性校验。 如果设置了此标志,那么将启用奇偶性校验生成和检测,并向每个字符添加奇偶性校验位。
- PARODD
- 指定奇校验。 如果启用了奇偶性校验,那么 PARODD 标志指定奇数奇偶性校验 (如果已设置)。 如果启用了奇偶性校验并且未设置 PARODD 标志,那么甚至会使用奇偶性校验。
- HUPCL
- 在上次关闭时挂断。 如果设置了此标志,那么当最后一个进程关闭线路或进程终止时 (当 "数据终端就绪" 信号断开时) ,该线路将断开连接。
- 本地
- 指定本地行。 如果设置了此标志,那么假定该线路具有本地直接连接,并且没有调制解调器控制。 如果未设置,将采用调制解调器控制 (拨号)。
- CIBAUD
- 指定输入波特率 (如果与输出率不同)。
- PAREXT
- 指定标记和空间奇偶性校验的扩展奇偶性校验。
- c_lflag
- 控制各种终端功能。 打开后的初始值是 "所有位都清除"。 除了基本方式之外,此字段还使用下列掩码名称符号:
- ISIG
- 启用信号。 如果设置了此标志,那么将针对 INTR , QUIT , SUSP 和 DSUSP 特殊控制字符检查每个输入字符。 如果输入字符与其中一个控制字符匹配,那么将执行与该字符关联的功能。 如果未设置 ISIG 标志,那么将不执行检查。
- ICANON
- 启用规范输入。 如果设置了此标志,那么它将开启规范处理,这将启用擦除和终止编辑功能,并将输入字符组合成由 NL , EOF 和 EOL 字符分隔的行。 如果未设置 ICANON 标志,那么将直接从输入队列中满足读请求。 在此情况下,在满足下列其中一个条件之后,才会满足读请求:
- 接收到由 最小 指定的最小字符数。
- 自接收到最后一个字符以来, 时间 指定的超时值已到期。 这允许读取输入的脉冲串,同时仍然允许单字符输入。
最小 和 时间 值分别存储在 EOF 字符和 EOL 字符的位置中。 最小 和 时间 的字符值将转换为它们的 ascii 等价值以获取数字值。 时间值表示十分之几秒。
- XCASE
- 启用规范的大写和小写表示。 如果此标志与 ICANON 标志一起设置,那么在输入时将接受大写字母 (或通过 IUCLC 输入方式转换为小写的大写字母) ,方法是在其前面加上 \ (反斜杠) 字符。 然后,还会在输出前面添加反斜杠字符。 在此方式下,输出将生成并输入接受以下转义序列:
- 对于
- 使用
- ` (坟墓)
- \ `
- |
- \ !
- ~
- \ ^
- {
- \ (
- }
- \ )
- \
- \ \
例如, A 是输入为\a, \n 作为\\n,并且 \n 为\\\n.
- NOFLSH
- 禁用队列清空。 如果设置了此标志,那么不会执行与 INTR , QUIT 和 SUSP 字符关联的输入和输出队列的正常清空操作。
- FLUSHO
- 对输出进行清仓。 当通过输入 FLUSH 字符来设置此位时,写入终端的数据将被废弃。 终端可以通过清除此位来取消输入 FLUSH 字符的效果。
- 彭丁
- 重新打印暂挂输入。 如果设置了此标志,那么在下一次读操作变为暂挂或下一次输入到达时,将重新输入从原始方式切换到规范方式后暂挂的任何输入。 PENDIN 标志是内部状态的位。
- IEXTEN
- 支持从输入数据中识别扩展 (由实施定义) 函数。 如果未设置此标志,那么将无法识别实现定义的函数,并且将按照 ICANON, ISIG, IXON和 IXOFF 标志的描述来处理相应的输入字符。 要识别以下特殊控制字符,需要设置 IEXTEN 标志:
- VEOL2
- VDSUSP
- VREPRINT
- VDISCRD
- VWERSE
- VLNEXT
与以下位相关联的函数还需要设置 IEXTEN 标志:
- IMAXBEL
- ECHOKE
- ECHOPRT
- ECHOCTL
- 停止
- 当后台进程组中的进程尝试写入它的控制终端时,发送 SIGTTOU 信号。 SIGTTOU 信号将停止该进程组的成员。
- ECHO
- 启用回传。 如果设置了此标志,那么将在接收到字符时回传这些字符。
在设置 ICANON 时,还可以使用以下回传函数:
- ECHOE
- 将擦除字符回传为 Backspace-Space-Backspace。 如果同时设置了 欧共体人道处 和 ECHOE 标志,并且未设置 ECHOPRT 标志,那么 ERASE 和 WERASE 字符将作为一个或多个 ASCII Backspace-Space-Backspace 序列回传,这将清除屏幕中的最后一个字符。
- ECHOPRT
- 如果同时设置了 欧共体人道处 和 ECHOPRT 标志,那么序列中的第一个 ERASE 和 WERASE 字符将回传为 \ (反斜杠) ,后跟要擦除的字符。 后续 ERASE 和 WERASE 字符以相反的顺序回传要擦除的字符。 下一个非擦除字符会导致在回显非擦除字符之前输入/(斜杠)。 此函数还要求设置 IEXTEN 位。
- ECHOKE
- 退格-空间-行终止时退格整行。 如果设置了此标志,那么将通过从屏幕擦除整行 (使用 ECHOE 和 ECHOPRT 标志选择的机制) 来回传终止字符。 该功能还需要设置 IEXTEN 标志。
- ECHOK
- 在杀死后回显 NL 字符。 如果设置了 ECHOK 标志,但未设置 ECHOKE 标志,那么在接收到终止字符后,将回传 NL 字符。 这强调删除了该行。
- ECHONL
- 回送 NL 字符。 如果设置了 ECHONL 标志,那么即使未设置 欧共体人道处 标志,也将回传 NL 字符。 对于设置为 "本地回传" (也称为 "半双工") 的终端而言,这很有用。
- ECHOCTL
- 将控制字符 (代码在 0 到 37 个八进制之间) 回传为 ^X,其中 X 是将 100 个八进制添加到控制字符的代码中生成的字符。 (例如,具有八进制代码 1 的字符被回传为^A)。 ASCII DEL 字符 (代码 177 八进制) 被回传为^?. ASCII TAB , NL 和 START 字符不会被回传。 除非已转义 (前面加上反斜杠) ,否则不会回传 EOF 字符。 因此,因为 EOT 是默认的 EOF 字符,所以会阻止响应 EOT 的终端挂断。 该功能还需要设置 IEXTEN 标志。
- c_cc
- 指定用于定义特殊控制字符的数组。 每个函数的相对位置和初始值如下所示:
- VINTR
- 对 INTR 特殊字符 (Ctrl-c) 建立索引,如果设置了 ISIG 标志,那么将在输入时识别该特殊字符。 INTR 字符生成 SIGINT 信号,该信号被发送到前台进程组中的所有进程,该终端是该前台进程组的控制终端。 如果设置了 ISIG 标志,那么在处理时将废弃 INTR 字符。
- VQUIT
- 对 QUIT 特殊字符 (Ctrl-\) 建立索引,如果设置了 ISIG 标志,那么将在输入时识别该字符。 QUIT 字符生成 SIGQUIT 信号,该信号将发送到前台进程组中以终端为控制终端的所有进程,并将 核心 图像文件写入到当前工作目录中。 如果设置了 ISIG 标志,那么在处理时将废弃 QUIT 字符。
- 维 ERASE
- 对 ERASE 特殊字符 (Backspace) 建立索引,如果设置了 ICANON 标志,那么将在输入时识别该字符。 ERASE 字符不会擦除超出由 NL , EOL , EOF 或 EOL2 字符定界的行的开头部分。 如果设置了 ICANON 标志,那么处理时将废弃 ERASE 字符。
- VKILL
- 对 KILL 特殊字符 (Ctrl-u) 建立索引,如果设置了 ICANON 标志,那么将在输入时识别该字符。 KILL 字符将删除整行 (由 NL , EOL , EOF 或 EOL2 字符定界)。 如果设置了 ICANON 标志,那么处理时将废弃 KILL 字符。
- VEOF
- 对 EOF 特殊字符 (Ctrl-d) 建立索引,如果设置了 ICANON 标志,那么将在输入时识别该特殊字符。 当接收到 EOF 时,所有等待读取的字符将立即传递到进程中,而不等待新行,并且将废弃 EOF。 如果在一行的开头接收到 EOF (没有正在等待的字符) ,那么将从读取返回零的字符计数,表示文件结束。 如果设置了 ICANON 标志,那么在处理时将废弃 EOF 字符。
- VEOL
- 对 EOL 特殊字符 (Ctrl-@ 或 ASCII NULL) 建立索引,如果设置了 ICANON 标志,那么将在输入时识别该字符。 EOL 是额外的行定界符 (例如 NL) ,通常不使用。
- VEOL2
- 对 EOL2 特殊字符 (Ctrl-@ 或 ASCII NULL) 建立索引,如果设置了 ICANON 和 IEXTEN 标志,那么将在输入时识别该字符。 EOL2 是额外的行定界符 (例如 NL) ,通常不使用。
- VSTART
- 对 START 特殊字符 (Ctrl-q) 建立索引,如果设置了 IXON 标志,那么会在输入时识别该字符; 如果设置了 IXOFF 标志,那么会在输出时生成该字符。 可以使用 START 字符来恢复已由 STOP 字符暂挂的输出。 如果设置了 IXON 标志,那么处理时将废弃 START 字符。 当输出未暂挂时,将忽略且不读取 START 字符。 VSTRT 是 VSTART的别名。
- VSTOP
- 对 STOP 特殊字符 (Ctrl-s) 建立索引,如果设置了 IXON 标志,那么会在输入时识别此特殊字符; 如果设置了 IXOFF 标志,那么会在输出时生成此特殊字符。 STOP 字符可以与终端一起使用,以防止输出消失,然后才能读取。 如果设置了 IXON 标志,那么在处理时将废弃 STOP 字符。 当输出暂挂时,将忽略 STOP 字符而不读取。
- VSUSP
- 对 SUSP 特殊字符 (Ctrl-z) 建立索引,如果设置了 ISIG 标志,那么将在输入时识别此特殊字符。 SUSP 字符生成一个 SIGTSTP 信号,该信号被发送到前台进程组中的所有进程,该终端是该前台进程组的控制终端。 如果设置了 ISIG 标志,那么在处理时将废弃 SUSP 字符。
- VDSUSP
- 对 DSUSP 特殊字符 (Ctrl-y) 建立索引,如果设置了 ISIG 和 IEXTEN 标志,那么会在输入时识别该字符。 DSUSP 字符会像 SUSP 字符一样生成 SIGTSTP 信号,但当前台进程组中的进程尝试读取 DSUSP 字符时,而不是在输入 DSUSP 时,会发送该信号。 如果设置了 ISIG 和 IEXTEN 标志,那么在处理时将废弃 DSUSP 字符。
- VREPRINT
- 对 REPRINT 特殊字符 (Ctrl-r) 建立索引,如果设置了 ICANON 和 IEXTEN 标志,那么将在输入时识别该字符。 REPRINT 字符将重新打印所有未读的字符,这些字符前面有一个新行。 如果设置了 ICANON 和 IEXTEN 标志,那么在处理时将废弃 REPRINT 字符。
- VDISCRD
- 对 DISCARD 特殊字符 (Ctrl-o) 建立索引,如果设置了 ICANON 和 IEXTEN 标志,那么会在输入时识别该字符。 DISCARD 字符会导致后续输出被废弃,直到输入另一个 DISCARD 字符,更多输入到达或程序清除该条件为止。 如果设置了 ICANON 和 IEXTEN 标志,那么在处理时将废弃 DISCARD 字符。
- VWERSE
- 对 WERASE 特殊字符 (Ctrl-w) 建立索引,如果设置了 ICANON 和 IEXTEN 标志,那么会在输入时识别该字符。 WERASE 字符导致前面的单词被擦除。 WERASE 字符不会擦除超出由 NL , EOL , EOF 或 EOL2 字符定界的行开头的内容。 如果设置了 ICANON 和 IEXTEN 标志,那么在处理时将废弃 WERASE 字符。
- VLNEXT
- 对 LNEXT (literal next) 特殊字符 (Ctrl-v) 建立索引,如果设置了 ICANON 和 IEXTEN 标志,那么会在输入时识别该特殊字符。 LNEXT 字符会导致忽略下一个字符的特殊含义,以便可以输入字符而不被系统解释。 如果设置了 ICANON, 欧共体人道处和 IEXTEN 标志,那么处理后的 LNEXT 字符将替换为 ^ -Backspace 序列。
- VMIN
- 对 最小 值建立索引,该值不是特殊字符。 在讨论 "ldterm Line Discussion" 在 常规编程概念: 编写和调试营销计划 中中的非规范方式输入处理时描述了 最小 值的使用。
- VTIME
- 对 时间 值建立索引,该值不是特殊字符。 在讨论 "ldterm Line Discussion" 在 常规编程概念: 编写和调试营销计划 中中的非规范方式输入处理时描述了 时间 值的使用。
下列控制字符的字符值可以更改:
项 描述 值 值 intr EOF STOP DISCARD QUIT EOL susp werase ERASE EOL2 dsusp lnext KILL 启动 reprint reprint ERASE , KILL 和 EOF 字符也可以进行转义 (前面加上反斜杠) ,这样就不会执行特殊处理。
参数值定义
tcsetattr 子例程的 OptionalActions 参数的以下值也在 termios.h 文件中定义:
| 项 | 描述 |
|---|---|
| TCSANOW | 立即从引用的 泰尔米奥斯 结构设置与终端关联的参数。 |
| TCSADRAIN | 在从 泰尔米奥斯 结构设置终端参数之前,等待直到写入对象文件的所有输出都已传输。 |
| TCSALUSH | 在从 泰尔米奥斯 结构设置终端参数之前,等待直到写入对象文件的所有输出都已传输,并且直到接收到但未读的所有输入都已废弃。 |
此头文件中还定义了 tcflush 子例程的 QueueSelector 参数的以下值:
| 项 | 描述 |
|---|---|
| TCIFLUSH | 清空已接收但未读取的数据。 |
| TCOFLUSH | 清空已写入但未传输的数据。 |
| TCIOFLUSH | 对已接收但未读取的数据以及已写入但未传输的数据进行清仓。 |
tcflow 子例程的 Action 参数的以下值也在 termios.h 文件中定义:
| 项 | 描述 |
|---|---|
| TCOOFF | 暂挂 Tcflow 子例程中指定的对象文件的数据输出。 |
| TCOON | 重新启动已由 TCOOFF 操作暂挂的数据输出。 |
| TCIFOFF | 发送停止字符,以停止终端设备的数据传输。 |
| TCION | 发送一个开始字符,以启动或重新启动终端设备的数据传输。 |
调制解调器控制操作
以下用于调制解调器控制的 ioctl 操作是 POSIX 线路规程接口的扩展。 要在程序中使用这些操作,该程序必须包含 ioctl.h 文件的 #include 语句。
| 项 | 描述 |
|---|---|
| TIOCMBIS | 此命令的自变量是一个指向整数的指针,该整数打开由整数掩码值指定的控制行。 其他控制线路不受影响。 |
| TIOCMBIC | 此命令的自变量是一个指向整数的指针,该整数关闭由整数掩码值指定的控制行。 其他控制线路不受影响。 |
| TIOCMGET | 获取所有调制解调器位。 此命令的自变量是一个指向整数的指针,该整数存储调制解调器状态行的当前状态。 受支持的调制解调器状态和调制解调器控制线路取决于硬件和硬件的设备驱动程序的功能。 |
| TIOCMSET | 设置所有调制解调器位。 此命令的自变量是指向一个整数的指针,该整数包含一组新的调制解调器位。 调制解调器控制位使用这些位来打开或关闭调制解调器控制线路,这取决于该线路的位是已设置还是已清除。 忽略任何调制解调器状态位。 受支持的实际调制解调器控制线路取决于硬件和硬件的设备驱动程序的能力。 该整数指定下列其中一个调制解调器控制或状态行,调制解调器控制 ioctl 命令在这些行上运行:
|
| TIOCMIWAIT | 请等待调制解调器状态线路更改状态。 该参数是一个指向整数掩码值的指针,该整数掩码值指定要等待状态更改的调制解调器状态行,并且可以由下列一个或多个值组成:
如果指定的所有行都未更改状态,那么 ioctl 可以无限期地阻止,因此它应该与 警报 () 计时器一起使用。 如果指定了 TIOCM_RNG 或 TIOCM_RI ,那么由于硬件限制,仅当状态行从
on 过渡到 off 时才会报告该过渡。注: 此 ioctl 的正确操作取决于正确的连线。
|