终端控制与伪终端应用全解析
在终端操作和编程中,我们常常会遇到各种与终端控制、设备识别以及应用开发相关的问题。本文将深入探讨终端控制的多个方面,包括额外的终端控制调用、终端识别、全屏应用以及伪终端的使用等内容。
终端恢复与额外控制调用
在调试过程中,有时会出现程序将终端设置为原始模式后异常终止,却未能恢复原始设置的情况。这时,用户可能会误以为计算机崩溃或终端“锁定”,甚至无法使用 EOF 注销。不过,我们可以通过以下步骤从原始模式中恢复:
1. 由于 ICRNL 被清除,输入行需要以 Ctrl - j 结尾,而非回车键。
2. 因为 ECHO 处于关闭状态,输入的内容不会显示。先输入几个换行符,此时会看到一系列 shell 提示符,但它们不会出现在左边界,因为输出处理(OPOST)已关闭。
3. 输入 stty sane 并按下换行符,即可恢复正常。
除了基本的终端属性设置,还有一些额外的系统调用可用于单独控制终端的输出和输入队列:
- tcdrain :用于等待终端输出完成。
#include <termios.h>
int tcdrain(
int fd
/* file descriptor */
);
/* Returns 0 on success or -1 on error (sets errno) */
- tcflush :用于刷新终端的输入、输出或两者的队列。 <
超级会员免费看
订阅专栏 解锁全文
896

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



