C:需要暂停过程,直到SIGALRM
问题描述:
我有这个代码的问题..C:需要暂停过程,直到SIGALRM
我需要把在等待(sigwait
)的过程,直至到达两个信号SIGUSR1
/SIGUSR2
(也许我可以用sigalrm
来捕获信号?)
#include <signal.h>
#include <stdio.h>
int main()
{
sigset_t set;
int sig;
sigemptyset(&set);
sigaddset(&set, SIGUSR1);
sigaddset(&set, SIGUSR2);
sigprocmask(SIG_BLOCK, &set, NULL);
sigwait(&set, &sig);
printf("Got signal %d\n", sig);
/*need to set Sigalrm?*/
return 0;
}
答
通过select()
管道的读取结束。当你捕捉到信号时,写入管道。这将导致select()
返回并继续执行。
+0
你能解释一下吗? – user3121134 2014-08-31 08:40:25
你想等待,直到你* * *信号?或者只是其中的一个? – 2014-08-30 14:44:37
只有一个!谢谢.. – user3121134 2014-08-30 14:48:31
如果到达sigusr1或sigusr2,这些并不重要,谢谢! – user3121134 2014-08-31 09:27:06