Linux终端设置
来源:互联网 发布:数据库 黑名单表设计 编辑:程序博客网 时间:2024/05/20 00:09
近日,项目涉及终端输入的问题,要不阻塞的情况下轮询串口,还要屏蔽掉 ctrl-c 等特殊键。
查了下资料,现在终端输入是有分规范和不规范两类的(canonical and noncanonical)。
- canonical : 输入以 \n EOF或者 EOL 字符串结束,就是串口想获取某键值的话,最后要敲个回车。
- nocanonical: 输入就可以获取键值。不要敲回车也可以读到。
其他的就好办了。
- 获取终端属性 tcgetattr
- 设置终端属性 tcsetattr
设置一下属性,基本都要可以找到所需要的功能了。
附上一小段code:
int get_custom_char(void){ struct termios org_opts, new_opts; int c; int ret; /* store old settings */ ret = tcgetattr(STDIN_FILENO, &org_opts); if (ret != 0) { goto err; } memcpy(&new_opts, &org_opts, sizeof(new_opts)); new_opts.c_lflag &= ~(ICANON | ECHO | ECHOE | ECHOK | ECHONL | ECHOPRT | ECHOKE | ICRNL); /* ctrl-q */ new_opts.c_cc[VSTART] = 0; /* ctrl-s */ new_opts.c_cc[VSTOP] = 0; /* ctrl-z */ new_opts.c_cc[VSUSP] = 0; /* ctrl-c */ new_opts.c_cc[VINTR] = 0; /* set new terminal parms */ ret = tcsetattr(STDIN_FILENO, TCSANOW, &new_opts); if (ret != 0) { goto err; } c = getchar(); /* restore old settings */ ret = tcsetattr(STDIN_FILENO, TCSANOW, &org_opts); if (ret != 0) { goto err; } return c;err: return -1;}
0 0
- linux设置串口终端
- linux 终端字体设置
- linux终端设置
- linux 终端颜色设置
- Linux 终端提示符设置
- linux设置终端
- Linux终端设置
- Linux终端设置代理
- linux设置串口终端
- linux超级终端minicom设置
- Linux终端字符颜色设置
- Linux 终端真透明设置
- Linux 伪终端termios设置
- Linux终端字符颜色设置
- [转]linux终端设置颜色
- Linux 终端字符颜色设置
- 设置linux终端字符颜色
- Linux下终端配色设置
- 微信办公的三种实现路径
- JAVA STRING 对象自动补齐空格
- 批量把文件编码由GBK转UTF-8
- Java虚拟机JVM总结(一)JVM运行原理及JVM中的Stack和Heap的实现过程
- 关于导航网站的思考
- Linux终端设置
- 5月25日百度优先收录https,站长们该如何应对
- UML类图基础
- 如何在真机上调试Android应用程序(图文详解)
- cocoapods 总结
- Linux系统下如何查看及修改文件读写权限
- 彻底理解ThreadLocal
- 《算法导论》12、二叉查找树(C++实现)
- 【Ubuntu 命令大全】查看信息