LynxOS プログラムを ubuntu ディストリビューションと gcc 4.1.3 に移行しています。
ほぼ完了しましたが、問題があります。プログラムを強制的に終了させる SIGALRM シグナルを受信しています。alarm(x) を呼び出していないのに、なぜこの信号を受信しているのかわかりません。
これを sigaction で回避しましたが、プログラムが正しく動作していません mq_receive は、この SIGALRM を受信するたびに失敗します。
このコード変換が原因ではないかと思います。
#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 が継続するのも待ちます。
感謝と敬意