linux – 从内核向用户空间发送信号
发布时间:2020-12-14 01:13:53 所属栏目:Linux 来源:网络整理
导读:如何从内核空间获取信号到用户空间? 解决方法 要从内核到用户空间获取信号,请在用户空间和内核空间代码中使用以下代码,如下所示: 用户空间应用: signal(SIGIO,signal_handler_func); fcntl(fd,F_SETOWN,getpid());oflags = fcntl(fd,F_GETFL);fcntl(fd,F_
如何从内核空间获取信号到用户空间?
解决方法
要从内核到用户空间获取信号,请在用户空间和内核空间代码中使用以下代码,如下所示:
用户空间应用: signal(SIGIO,&signal_handler_func); fcntl(fd,F_SETOWN,getpid()); oflags = fcntl(fd,F_GETFL); fcntl(fd,F_SETFL,oflags | FASYNC); 定义signal_handler_func函数: void signal_handler_func (int sig) { //handle the action corresponding to the signal here } 内核空间模块: int ret = 0; struct siginfo info; memset(&info,sizeof(struct siginfo)); info.si_signo = SIG_TEST; info.si_code = SI_QUEUE; info.si_int = 1234; send_sig_info(SIG_TEST,&info,t);//send signal to user land t是用户应用程序的PID. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |