linux中实现getch函数
思想是把终端设置为非缓存
- #include <stdio.h>
- #include <termios.h>
- #include <unistd.h>
- #include <assert.h>
- #include <string.h>
- int getch(void);
- int main(void)
- {
- char ch;
- printf("Input a char:");
- fflush(stdin);
- ch = getch();
- printf("\nYou input character is: %c\n", ch);
- return 0;
- }
- int getch(void)
- {
- int c=0;
- struct termios org_opts, new_opts;
- int res=0;
- //----- store old settings -----------
- res=tcgetattr(STDIN_FILENO, &org_opts);
- assert(res==0);
- //---- set new terminal parms --------
- memcpy(&new_opts, &org_opts, sizeof(new_opts));
- new_opts.c_lflag &= ~(ICANON | ECHO | ECHOE | ECHOK | ECHONL | ECHOPRT | ECHOKE | ICRNL);
- tcsetattr(STDIN_FILENO, TCSANOW, &new_opts);
- c=getchar();
- //------ restore old settings ---------
- res=tcsetattr(STDIN_FILENO, TCSANOW, &org_opts);assert(res==0);
- return c;
- }
linux中实现getch函数相关推荐
- linux运行getch吗,在linux中使用getch()函数
http://blog.csdn.net/xiaoweige207/article/details/6206265 由于在Linux中没有conio.h文件,所以不能直接用getch()函数,下面介绍 ...
- 在linux中使用getch()函数
#include <termio.h>int getch(void) {struct termios tm, tm_old;int fd = 0, ch;if (tcgetattr(fd, ...
- linux中进程退出函数:exit()和_exit()的区别
linux中进程退出函数:exit()和_exit()的区别 (1)_exit()执行后立即返回给内核,而exit()要先执行一些清除操作,然后将控制权交给内核. (2)调用_exit函数时,其会关闭 ...
- linux中的umask 函数
我们创建文件的默认权限是怎么来的?如何改变这个默认权限呢? umask是什么? 当我们登录系统之后创建一个文件总是有一个默认权限的,那么这个权限是怎么来的呢?这就是umask干的事情.umask设置了 ...
- Linux中 C++ main函数参数argc和argv含义及用法
Linux中 C++ main函数参数argc和argv含义及用法 简介 argc 是 argument count的缩写,表示传入main函数的参数个数: argv 是 argument vecto ...
- linux之getcwd函数解析,如何在Linux 中使用getcwd()函数
如何在Linux 中使用getcwd()函数 发布时间:2021-03-15 17:35:21 来源:亿速云 阅读:106 作者:Leah 这期内容当中小编将会给大家带来有关如何在Linux 中使用g ...
- linux中的sleep函数和delay函数
对于做过单片机程序的朋友来说,delay是很常见的函数,通常就是while或者for循环,进行空指令的执行,由于单片机的晶振固定,一个机器周期的时间是固定的,执行多少个空指令, 就可以完成多少个机器周 ...
- 时间基础概念及Linux中的时间函数
时间基础概念及Linux中的时间函数 时间相关概念 GMT 时间 UTC 时间 时区 `Time Zone` 夏令时 `DST` 本地时间 `localtime` Linux 系统中的时间 时钟基础概 ...
- linux内核的延时函数,linux中内核延时函数 (转)
第一类延时函数原型是:(忙等) void ndelay(unsigned long nsecs); void udelay(unsigned long usecs); void mdelay(unsi ...
- 深入解析Linux中的fork函数
1.定义 #include <unistd.h> #include<sys/types.h> pid_t fork( void ); pid_t 是一个宏定义,其实质是int, ...
最新文章
- 在SQLserver数据库里设置作业的步骤
- CS9:转载:怎样配置Win Radius 当使用Cisco交换机时
- 函数式编程语言python-Python——五分钟理解函数式编程与闭包
- 040 DataFrame中的write与read编程
- GHOST光盘制作详细教程
- EF Core中避免贫血模型的三种行之有效的方法(翻译)
- 商务部部长助理黄海:中国服务外包产业发展势头良好
- win32开发(鼠标)
- 如何打造程序员专属聊天室?
- 航天电子业绩下降近两成
- Java经典编程习题100例,供初学者学习
- electron仿制百度网盘客户端2(登录界面制作)
- 'break' not in the 'loop' or 'switch' context 报错
- python中运用django_【Django】在项目中使用python
- 新浪微博PC客户端,(蓝星星微博客户端)VC++
- 精美素材:10套最新出炉的免费扁平图标下载
- 【火车票】心蓝抢票软件
- Python机器学习及实践——基础篇9(SVM回归)
- 什么是融资?怎么才能融资?如何实现个人融资?
- xheditor使用方法记录