博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux getch()实现
阅读量:6975 次
发布时间:2019-06-27

本文共 409 字,大约阅读时间需要 1 分钟。

#include <termio.h>

 
int getch(void)
{
     struct termios tm, tm_old;
     int fd = 0, ch;
 
     if (tcgetattr(fd, &tm) < 0) {//保存现在的终端设置
          return -1;
     }
 
     tm_old = tm;
     cfmakeraw(&tm);//更改终端设置为原始模式,该模式下所有的输入数据以字节为单位被处理
     if (tcsetattr(fd, TCSANOW, &tm) < 0) {//设置上更改之后的设置
          return -1;
     }
 
     ch = getchar();
     if (tcsetattr(fd, TCSANOW, &tm_old) < 0) {//更改设置为最初的样子
          return -1;
     }
    
     return ch;
}

转载于:https://www.cnblogs.com/wanhuan/p/5796614.html

你可能感兴趣的文章
os模块的几种方法
查看>>
tensorflow API _ 4 (Logging with tensorflow)
查看>>
常用模块------时间模块 , random模块 ,os模块 , sys模块
查看>>
10.02 T3 打表找递推式+十进制快速幂 九校联考凉心模拟DAY1T1
查看>>
leetcode — reverse-linked-list
查看>>
linux 命令 — sort、uniq
查看>>
[python]Python代码安全分析工具(Bandit)
查看>>
向继电器发送socket请求(python+java)
查看>>
20165201 2017-2018-2 《Java程序设计》第一周学习总结
查看>>
7. WebDriver API
查看>>
动软.NET代码生成器实例教程使用总结
查看>>
spring框架学习--依赖注入
查看>>
C语言难点4之动态内存分配
查看>>
[模板] 杜教筛 && bzoj3944-Sum
查看>>
第一次作业
查看>>
SpringBoot2.x的Maven依赖配置
查看>>
17.11.16
查看>>
使用proxyTable 解决webpack+vue-cli+vue-resource中跨域问题
查看>>
页面制作部分之PS切图
查看>>
mysql 案例~mysql元数据的sql统计
查看>>