首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

Linux设备驱动入门-globalfifo字符设备驱动(3)

2012-09-13 
Linux设备驱动入门----globalfifo字符设备驱动(三)这一节主要在上一节中添加了异步通知的功能,要注意观察

Linux设备驱动入门----globalfifo字符设备驱动(三)

这一节主要在上一节中添加了异步通知的功能,要注意观察和对比该字符设备的驱动是怎样一步步完善的。

补充一下小知识:异步通知的意思是一旦设备就绪,就主动通知应用程序,这样应用程序根本读不需要查询设备状态。

/* 这是一个用户空间的用来测试globalfifo字符 * 驱动设备的异步接受处理程序asyncmonitor.c * 作者:liwei.cai * 日期: 2012-08-07 */#include <sys/types.h>#include <sys/stat.h>#include <stdio.h>#include <fcntl.h>#include <signal.h>#include <unistd.h>/* 接受到异步读信号后的动作 */void input_handler(int signum){printf("recevie a signal from globalfifo, signalnum:%d\n", signum);}int main(void){int fd, oflags;fd = open("/dev/globalfifo", O_RDWR, S_IRUSR | S_IWUSR);if (fd != -1){//启动信号驱动机制signal(SIGIO, input_handler); //让input_handler()处理SIGIO信号fcntl(fd, F_SETOWN, getpid());oflags = fcntl(fd, F_GETFL);fcntl(fd, F_SETFL, oflags | FASYNC);while(1){sleep(1000);}}else{printf("device open failure.\n");}}


热点排行