终端控制与 terminfo 库的全面指南
1. 终端输入与特殊字符处理
在程序中,用户输入的处理是一个重要环节。默认情况下,如果用户在程序运行时输入 Ctrl + C,程序将会终止。不过,我们可以通过清除本地模式中的 ISIG 标志来禁用这些特殊字符的处理。具体操作是在 main 函数中添加如下代码:
new_settings.c_lflag &= ~ISIG;
当把这个改动应用到菜单程序中时,程序会立即响应输入,并且输入的字符不会被回显。例如:
$ ./menu4
Choice: Please select an action
a - add new record
d - delete record
q - quit
You have chosen: a
Choice: Please select an action
a - add new record
d - delete record
q - quit
You have chosen: q
$
如果输入 Ctrl + C,它会直接被传递给程序,并被当作一个错误的选择来处理。
2. 终端类型与多样性挑战
许多 UNIX 系统会搭配终端使用,但如今的“终端”可能是运行终端仿真程序的 PC,或者是像 X11 中的 xterm 这样的窗口环境中的终端应用程序。历史上,不同制造商生产了大量的硬件终端,虽然它们大多使用以转义字符开头的转义序列来控制光标位置和其
超级会员免费看
订阅专栏 解锁全文
32

被折叠的 条评论
为什么被折叠?



