linux 如何在C语言中使用SIGSTOP、SIGCONT和SIGKILL作为子进程

k5hmc34c  于 2022-11-22  发布在  Linux
关注(0)|答案(1)|浏览(200)

我正在写一个C程序,使用fork(),execvp()作为子进程。我想停止,继续和杀死一个子进程,我该怎么处理呢?我对信号不太了解。

qlzsbp2j

qlzsbp2j1#

在进程内调用signal函数以设置信号处理程序,当进程收到指定的特定信号时将调用该函数。
以下是SIGUSR1信号的信号处理函数示例:

static void usr1_signal_handler(int signo)
{
    printf("Received SIGUSR1!\n");
    finish_up = true;
}

以及如何设置的示例:

if (signal(SIGUSR1, usr1_signal_handler) == SIG_ERR) {
    printf("An error occurred while setting a signal handler.\n");
}

可以使用kill函数向进程发出信号:

kill(pid, SIGUSR1);

在这种情况下,pid可以是调用fork时收到的进程id。

相关问题