我正在开发一个项目,将一大堆OS-9(微波)代码移植到linux。
OS-9中的信号处理功能允许您创建自己的信号,或者至少是它的实现方式(intercept()函数)。我对linux信号并不是很了解,并且一直在努力教我自己。我有sigusr1工作的sigaction路线只是为了让自己熟悉。在传统的OS-9代码中,有10个用户定义的信号。在linux中实现这一目标的最佳方法是什么?
OS-9信号处理程序是一个具有大switch语句的函数。每个信号对应(设置)一个全局变量,该变量在该进程代码中的其他位置起作用。
谢谢, 塞特
答案 0 :(得分:2)
您需要在SIGRTMIN和SIGRTMAX之间使用信号编号。 这将在here
中讨论您发送带有kill的信号(如果没有数据)或sigqueue(如果有数据)。
你收到信号的信号。查看sigaction的手册页以查找sigqueue数据的存储位置。