我正在写一个C程序,使用fork(),execvp()作为子进程。我想停止,继续和杀死一个子进程,我该怎么处理呢?我对信号不太了解。
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。
1条答案
按热度按时间qlzsbp2j1#
在进程内调用signal函数以设置信号处理程序,当进程收到指定的特定信号时将调用该函数。
以下是SIGUSR1信号的信号处理函数示例:
以及如何设置的示例:
可以使用kill函数向进程发出信号:
在这种情况下,pid可以是调用fork时收到的进程id。