gpt4 book ai didi

c - 如何在 C 中为子进程使用 SIGSTOP、SIGCONT 和 SIGKILL

转载 作者:太空宇宙 更新时间:2023-11-04 12:49:23 25 4
gpt4 key购买 nike

我正在编写一个 C 程序,该程序将 fork()、execvp() 用于子进程。我想停止、继续并终止子进程,我该如何处理?我不太了解信号。

最佳答案

调用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。

关于c - 如何在 C 中为子进程使用 SIGSTOP、SIGCONT 和 SIGKILL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37715003/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com