linux下按下键退出while循环(类似于_kbhit)
#include <stdio.h>
#include <sys/select.h>
#include <termios.h>
#include <unistd.h>
#include <ctype.h>
#define STDIN 0
int main()
{
struct timeval tv = {0,0};
struct termios term , termbak;
char ch;
fd_set fd;
FD_ZERO(&fd);
FD_SET( STDIN ,&fd);
tcgetattr(STDIN, &term);
termbak = term;
term.c_lflag &= ~(ICANON|ECHO);
tcsetattr(STDIN, TCSANOW, &term);
while(1)
{
FD_ZERO(&fd);
FD_SET( STDIN ,&fd);
if( 1 == select( STDIN+1,&fd,NULL,NULL,&tv)
&& 1 == read( STDIN , &ch , 1 )
&& 'q' == tolower(ch) )
break;
putchar('.');fflush(stdout);
usleep(100000);
}
tcsetattr(STDIN,TCSANOW,&termbak);
return 0;
}
转载自:http://topic.csdn.net/u/20100115/10/7ec685ee-27ef-4b03-b184-ce0a1e728cde.html
相关文档:
uname -a
cat /proc/version
cat /etc/issue
lsb_release -a (适用于所有的linux,包括Redhat、SuSE、Debian等发行版,但是在debian下要安装lsb,不安装加上-a参数查看部分)
如:
发行版:
# cat /etc/issue
内核:
# uname -r
......
1、将驱动源码放在/drivers/char/下
2、修改drivers/char/Kconfig文件,添加以下内容:
config My_Buttons
tristate "My_Buttons test"
depends on ARCH_S3C2440
default y if ARCH_S3C2 ......
在写这篇文章的时候,有323个不同的发行版
被
distrowatch.com关注。有的被称作Ehad,有的叫做EstrellaRoja。很多名字里面都有包括一个“X”字母,一些展示特性的吉祥
物和自己的交流社区。他们当中并不是所有的都是完全基于Linux基础框架和发展活跃的,但大多数主流发行版如此。这是一个选择多样的世界,是 ......
Linux 同步方法剖析
内核原子,自旋锁和互斥锁
文档选项
将此页作为电子邮件发送
级别: 中级
M. Tim Jones, 顾问工程师, Emulex
2007 年 11 月 19 日
在学习 Linux® 的过程中,您也许接触过并发(concurrency)、临界段(critical section)和锁定,但是如何在内核中使用这些概念呢?本文讨 ......