- 终端模式有三种,规范模式、非规范模式、raw模式。
- 规范模式:又名cooked模式,是最常见的模式。拥有缓冲区特性(仅在接收到回车键时才将输入发送到程序),使得驱动程序可以实现基本的编辑功能。可通过命令stty或tcsetattr()修改。
- 非规范模式:没有缓冲特性和可编辑特性,但仍具有特定的字符处理,比如处理Ctrl-C。
- raw模式:当所有的处理设置都被关闭时,驱动程序处于raw模式。
- struct termios.c_lflag部分属性位
ICANON---标准模式属性位 ISIG---当输入INTR、QUIT、SUSP或DSUSP时,产生相应的信号 ECHO---回显属性位
-
struct termios.c_cc[VMIN] = 1; //设置每次只读一个字符 struct termios.c_cc[VTIME]=20; //设置驱动程序的超时为2s
-
终端驱动程序默认行缓冲输出,所以cout<<endl同fflush(stdout)作用一样,都是让缓冲内容迅速输出。
-
signal()用于安装信号处理函数
-
针对SIGINT(Ctrl-C)安装处理函数,如果SIGINT发送太多次的话,仅仅有两个SIGINT会被真正发送到信号队列中
Unix-Linx 编程实践教程 第六章 小结
猜你喜欢
转载自my.oschina.net/u/3281747/blog/2876862
今日推荐
周排行