从C中的shell背景进程

时间:2016-02-14 17:56:12

标签: c shell signals fork background-process

我正在尝试在后台进程完成运行时调用函数。我本质上是创建一个小shell并尝试后台进程,以便在程序完成执行时返回其内容,并且不阻止进程。我下面的代码运行正常并按我的意愿运行,除了它在完成时没有调用signalInterrupt()函数。当后台进程完成运行时,我想要发生一些步骤,但由于它没有达到我的功能,我无法完成这些。我该如何解决这个问题?

pid = fork();
if(pid == 0) {
    signal(SIGINT, signalInterrupt);
    if(execvp(args[0], args) == -1)
        fprintf(stderr, "Error executing command\n");
    exit(EXIT_FAILURE);
}

void signalInterrupt(int signal) {
    fprintf(stderr, "Got a sigint\n");
}

0 个答案:

没有答案