概述
#include<sys/types.h>
#include<sys/stat.h>
#include<stdio.h>
#include<fcntl.h>
#include<signal.h>
#include<unistd.h>
#define MAX_LEN 100
void input_handler(int num)
{
char data[MAX_LEN];
int len;
len = read(STDIN_FILENO,&data,MAX_LEN);
/*读取并输出 STDIN_FILENO 的输入*/
data[len] = 0;
printf("input available: %sn",data);
}
int main()
{
int oflags;
signal(SIGIO,input_handler);
/*启动信号驱动机制*/
/*为 SIGIO 信号安装input_handler() 作为处理函数*/
fcntl(STDIN_FILENO,F_SETOWN,getpid());
/*设置本进程为 STDIN_FILENO 文件的拥有者*/
oflags = fcntl(STDIN_FILENO,F_GETFL);
fcntl(STDIN_FILENO,F_SETFL,oflags | FASYNC);
while(1);/*保证进程不终止*/
return 0;
}
代码来源:宋宝华 《Linux设备驱动开发详解》
最后
以上就是奋斗母鸡为你收集整理的使用信号实现异步通知的全部内容,希望文章能够帮你解决使用信号实现异步通知所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复