第四十一章 终端输入 输出 - 协议终止符
协议终止符
OPEN
和 USE
协议定义了哪些 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 和 127
。ASCII 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 0
到31
和ASCII 127
到159
。这些字符中的大多数被视为READ
终止字符。这包括制表符 (ASCII 9
),它在所有其他协议中被视为数据字符。一些字符被视为命令行控制字符:ASCII 3 ( Ctrl-C )
丢弃输入并发出如果启用了BREAK
。ASCII 8
(退格)和127
(删除)执行单字符退格擦除,然后继续读取。ASCII 21 ( Ctrl-U )
和ASCII 24 ( Ctrl-X )
执行多字符退格,擦除所有先前的字符,然后继续READ
。ASCII 27
是转义字符。IT
(图像模式 + 终止符模式)接受除65
个控制字符之外的所有字符作为数据:ASCII 0
到31
和ASCII 127
到159
。它将所有控制字符视为READ
终止符。
在任何这些模式中,都可以使用terminator
参数显式指定其他终止符。由于图像模式通常用于位流数据,因此通常避免指定任何字符作为终止符。