读书人

Linux设备驱动入门-globalfifo字符设备

发布时间: 2012-09-13 09:51:53 作者: rapoo

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");}}


读书人网 >UNIXLINUX

热点推荐