有没有办法在Linux中创建用户定义的信号?我的信号(信号编号)不应与任何现有信号编号匹配。
换句话说,我想创建我自己的唯一信号,该信号将由我的处理程序注册并捕获。
有可能吗?如果是,怎么样?
提前致谢。
答案 0 :(得分:15)
SIGRTMIN
到SIGRTMAX
(这些通常不是常量,但扩展到运行时评估的函数的宏)可用于您喜欢的任何用途,SIGUSR1
和{{1} }。前者有额外的实时排队支持;后者没有。只需选择一个即可使用。
答案 1 :(得分:5)
您无法添加或注册自己的SIGWHATEVER。
请参阅sigset_t
,它是固定大小的。请参阅valid_signal()
beartraps。
答案 2 :(得分:5)
您可以使用特殊信号编译自己的内核:)
答案 3 :(得分:4)
有USR1
和USR2
信号设计用于用户定义的目的。
答案 4 :(得分:2)
您可以使用USR1和USR2进行此类操作。
如果这还不够,您可以通过让应用程序侦听外部应用程序可以向其发送消息的套接字来模拟信号行为。