Linux是用什么程序来处理键盘输入的?
发布网友
发布时间:2022-04-24 13:56
我来回答
共2个回答
热心网友
时间:2022-04-27 06:55
linux 处理键盘的本质上对 /dev/tty 这个文件进行的操作!
/dev/tty 这是键盘和显示器的设备描述文件,向这个文件写相当于显示在用户的屏幕上,读就相当于从键盘获取用户的输入。
即使你写的一个程序的输入输出被 "<" 或 ">" 重定向,程序还是可以通过这个文件与终端交换数据。
下面为示例代码:
FILE *file_tty;
int c;
file_tty = fopen("/dev/tty", "r");
if( file_tty == NULL )
exit(1);
/*从tty这里读,若碰到组合键 ctrl + d 则为 EOF,不执行下面的程序*/
if( (c = getc(file_tty) ) != EOF )
{
...
}
热心网友
时间:2022-04-27 08:13
read函数
#include<unistd.h>
ssize_t read(int fildes,void *buf,size_t nbyte);
fildes是输入文件,键盘是STDIN_FILENO
buf是以个字符数组,空间要足够大,nbyte是希望读入的字符数
返回值是时间上读到的个数。
你可以参考unix系统编程那本书