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

标签 c linux process signals

这段代码有问题..

我需要等待 (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() 返回并继续执行。

关于C: 需要暂停一个进程直到 sigalrm,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25583545/

相关文章:

c - 使用syscall后如何访问errno?

c - 从电子邮件下载可执行应用程序时自动启动

Visual Studio 上的 C 或 C++

java - 如何使用进程在目录中运行 jar 文件

c - 如何延迟 C 中的函数?

c - 对于循环 : increment and decrement of variables

windows - 从 Windows 机器连接到 Linux VPS 盒子

linux - 按ip列出所有打开的文件

vb.net - 使用 VB.net 获取代表进程的图标

c# - 如何强制用户在 excel 中保存 excel 文件?