Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何使用SIGRTMAX和SIGRTMIN?_Linux_Process_Signals_Real Time - Fatal编程技术网

Linux 如何使用SIGRTMAX和SIGRTMIN?

Linux 如何使用SIGRTMAX和SIGRTMIN?,linux,process,signals,real-time,Linux,Process,Signals,Real Time,我知道信号是如何在POSIX中定义的实时信号。然而,我很想知道如何使用这些信号,或者更确切地说,这些信号是如何产生的?与在无效内存引用上生成SIGSEGV一样,在键盘中断(如ctrl+c)上生成SIGINT 像SIGRTMAX和SIGRTMIN这样的信号是如何生成和使用的?事实上,我已经找到了如何为SIGRTMAX和SIGRTMIN生成信号的方法 如果将来有人遇到这种情况- 首先使用结构sigaction,根据需要设置成员。将sa_handler设置为处理信号生成所需的函数 要将其付诸实施,请使

我知道信号是如何在POSIX中定义的实时信号。然而,我很想知道如何使用这些信号,或者更确切地说,这些信号是如何产生的?与在无效内存引用上生成SIGSEGV一样,在键盘中断(如ctrl+c)上生成SIGINT


像SIGRTMAX和SIGRTMIN这样的信号是如何生成和使用的?

事实上,我已经找到了如何为SIGRTMAX和SIGRTMIN生成信号的方法

如果将来有人遇到这种情况-

首先使用结构sigaction,根据需要设置成员。将sa_handler设置为处理信号生成所需的函数

要将其付诸实施,请使用函数sigaction()传递linux手册中指定的参数

因此,现在您可以使用struct sigevent在其中设置成员,以指定要处理的信号号以及如何为其发送通知

有了这个,你已经完成了设置,现在你需要创建一个现象或事件,它可能会产生信号,就像时间的过期一样

这可以通过create\u timer()获取计时器处理程序来实现,这会将sigevent与处理程序相关联

然后使用struct itimerspec设置过期时间间隔,然后使用timer\u settime()将过期时间与处理程序关联

因此,现在过期与处理程序关联,时间处理程序与sigevent关联,sigevent将该信号重定向到sigaction设置的处理程序