文章
· 十二月 5 阅读大约需 3 分钟

第四十一章 终端输入 输出 - 协议终止符

第四十一章 终端输入 输出 - 协议终止符

协议终止符

OPENUSE 协议定义了哪些 READ 输入字符、控制序列和击键被视为隐式终止符。这四种协议是 I(图像模式)、N(正常模式(默认))、R(读取行调用模式)和 T(终止符模式):

  • I(图像模式)接受所有 256 个八位字符作为数据,不将任何字符视为 READ 输入终止符或命令行编辑字符。因此,您应该在图像模式下仅使用单个字符或固定长度的READ操作。如果没有定义终止字符,普通的READ会导致错误。
  • N(普通模式)和 C(CRT 模式)接受除以下六种字符之外的所有字符作为数据:ASCII 3、8、10、13、21 和 127。其中两种字符:ASCII 10(换行符)和 13(回车符)终止 READ 并提交输入。 ASCII 3 ( Ctrl-C ) 丢弃输入并发出如果启用 BREAK,则会出现错误。 ASCII 8(退格)和 127(删除)执行单字符退格擦除,然后继续读取。 ASCII 21 执行多字符退格,擦除所有先前的字符,然后继续读取。
  • R(读取行调用模式)接受除以下 20 种以外的所有字符作为数据:ASCII 1 到 8、10 到 14、16、18、21、23、24、27 和 127ASCII 10(换行)和 13(回车) return) 终止 READ 并提交输入。 ASCII 3 ( Ctrl-C ) 丢弃输入并发出如果启用了 BREAK。其他字符执行以下命令行编辑功能:
1   ^A = beginning of line
2   ^B = back word
3   ^C = interrupt
4   ^D = delete current character
5   ^E = end of line
6   ^F = forward word
7   ^G = delete to beginning of word ("wipe word backward")
8   ^H = BS = destructive backspace
9   ^I = HT = horizontal tab (echoed as a SPACE)
10  ^J = LF = end of input
11  ^K = VT = forward character
12  ^L = FF = erase to end of line
13  ^M = CR = end of input (same as LF)
14  ^N = recall next input line
16  ^P = recall previous input line
18  ^R = back char (reverse)
21  ^U = erase to start of line
23  ^W = delete to end of word "gobble word forward")
24  ^X = erase entire line
27  ESC lead character for arrow and function keys
127 DEL = destructive backspace (same as BS)
  • T(终止符模式)接受除 65 个控制字符之外的所有字符作为数据:ASCII 031ASCII 127159。这些字符中的大多数被视为 READ 终止字符。这包括制表符 (ASCII 9),它在所有其他协议中被视为数据字符。一些字符被视为命令行控制字符: ASCII 3 ( Ctrl-C ) 丢弃输入并发出如果启用了 BREAKASCII 8(退格)和 127(删除)执行单字符退格擦除,然后继续读取。 ASCII 21 ( Ctrl-U )ASCII 24 ( Ctrl-X ) 执行多字符退格,擦除所有先前的字符,然后继续 READASCII 27 是转义字符。
  • IT(图像模式 + 终止符模式)接受除 65 个控制字符之外的所有字符作为数据:ASCII 031ASCII 127159。它将所有控制字符视为 READ 终止符。

在任何这些模式中,都可以使用terminator参数显式指定其他终止符。由于图像模式通常用于位流数据,因此通常避免指定任何字符作为终止符。

讨论 (0)1
登录或注册以继续