我是靠谱客的博主 奋斗母鸡,这篇文章主要介绍使用信号实现异步通知,现在分享给大家,希望可以做个参考。

#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设备驱动开发详解》

 

最后

以上就是奋斗母鸡最近收集整理的关于使用信号实现异步通知的全部内容,更多相关使用信号实现异步通知内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(63)

评论列表共有 0 条评论

立即
投稿
返回
顶部