#include <stdlib.h>
#include <stdio.h>
#include <termios.h>
#include <string.h>
static struct termios stored_settings;
void
set_keypress (void)
{
struct termios new_settings;
tcgetattr (0, &stored_settings);
new_settings = stored_settings;
/* Disable canonical mode, and set buffer size to 1 byte */
new_settings.c_lflag &= (~ICANON);
new_settings.c_cc[VTIME] = 0;
new_settings.c_cc[VMIN] = 1;
tcsetattr (0, TCSANOW, &new_settings);
return;
}
void
reset_keypress (void)
{
tcsetattr (0, TCSANOW, &stored_settings);
return;
}
int main()
{
int c = 0;
printf("begin input one char\n");
set_keypress();
while(1)
{
c = getchar();
printf("your input is %c\n",c);
if(c == (int)'q')
break;
}
reset_keypress();
printf("end input one char\n");
return 0;
}
[root@mip-172024149048 char]# gcc -Wall -o char char.c
[root@mip-172024149048 char]# ./char
begin input one char
syour input is s
cyour input is c
本篇文章来源于 Linux公社网站(www.linuxidc.com) 原文链接:http://www.linuxidc.com/Linux/2009-04/19606.htm