Linux 如何使用SIGRTMAX和SIGRTMIN?
我知道信号是如何在POSIX中定义的实时信号。然而,我很想知道如何使用这些信号,或者更确切地说,这些信号是如何产生的?与在无效内存引用上生成SIGSEGV一样,在键盘中断(如ctrl+c)上生成SIGINTLinux 如何使用SIGRTMAX和SIGRTMIN?,linux,process,signals,real-time,Linux,Process,Signals,Real Time,我知道信号是如何在POSIX中定义的实时信号。然而,我很想知道如何使用这些信号,或者更确切地说,这些信号是如何产生的?与在无效内存引用上生成SIGSEGV一样,在键盘中断(如ctrl+c)上生成SIGINT 像SIGRTMAX和SIGRTMIN这样的信号是如何生成和使用的?事实上,我已经找到了如何为SIGRTMAX和SIGRTMIN生成信号的方法 如果将来有人遇到这种情况- 首先使用结构sigaction,根据需要设置成员。将sa_handler设置为处理信号生成所需的函数 要将其付诸实施,请使
像SIGRTMAX和SIGRTMIN这样的信号是如何生成和使用的?事实上,我已经找到了如何为SIGRTMAX和SIGRTMIN生成信号的方法 如果将来有人遇到这种情况- 首先使用结构sigaction,根据需要设置成员。将sa_handler设置为处理信号生成所需的函数 要将其付诸实施,请使用函数sigaction()传递linux手册中指定的参数 因此,现在您可以使用struct sigevent在其中设置成员,以指定要处理的信号号以及如何为其发送通知 有了这个,你已经完成了设置,现在你需要创建一个现象或事件,它可能会产生信号,就像时间的过期一样 这可以通过create\u timer()获取计时器处理程序来实现,这会将sigevent与处理程序相关联 然后使用struct itimerspec设置过期时间间隔,然后使用timer\u settime()将过期时间与处理程序关联 因此,现在过期与处理程序关联,时间处理程序与sigevent关联,sigevent将该信号重定向到sigaction设置的处理程序