我正在将 LynxOS 程序迁移到 ubuntu 发行版和 gcc 4.1.3
我快完成了,但是我遇到了一个问题,我收到了 SIGALRM 信号,这迫使我的程序退出。如果我不打电话给警报(x),我不知道为什么我会收到这个信号。
我通过 sigaction 绕过了这一点,但我的程序无法正常工作,每次收到此 SIGALRM 时,mq_receive 都会失败。
我想知道是否可能是因为这个代码翻译:
#include <events.h>
#include <timers.h>
evtset_t EvtMask;
struct timespec Time;
Time.tv_sec = 2;
Time.tv_nsec = 0;
evtsuspend (&EvtMask, &Time);
现在是
sleep(2);
这是 LynxOS 提供的有关 evtsuspend 的信息:
evtsuspend (由于我缺乏声誉,无法插入图片)
你认为它们的工作方式相同吗?(不指定事件掩码) sleep() 也等待 SIGALRM 继续。
谢谢并恭祝安康