C:需要暂停一个过程直到sigalrm

时间:2014-08-30 14:39:44

标签: c linux process signals

我的代码有问题..

我需要等待(sigwait)一个进程,直到到达两个信号SIGUSR1 / SIGUSR2(也许我可以使用sigalrm来捕获信号?)< / p>

#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;
}

1 个答案:

答案 0 :(得分:1)

传递select()管道的读取端。捕获信号时,写入管道。这将导致select()返回并继续执行。