sigsuspend トピックについて説明が必要です。簡単な例があります
sigset_t mask, oldmask;
sigemptyset (&mask);
sigaddset (&mask, SIGRTMIN+1);
sigprocmask (SIG_BLOCK, &mask, &oldmask);
sigsuspend(&oldmask);
sigprocmask (SIG_UNBLOCK, &mask, NULL);
これが私がこれをどのように理解するかです:
次に、ループ内にそのような sigsuspend があり、いくつかの SIGRTMIN+1 シグナルが到着したとします。そのようなループは各信号に対して継続しますか? ある種のキューで?
while(1){
sigsuspend(&oldmask)
printf("recieved signal");
}
シグナルごとに「受信シグナル」が印刷されるようにするには?