如何使用C发送和捕获发送到PID的信号

时间:2011-05-05 03:38:06

标签: c process signals

假设,我知道我的父ID的过程并希望

kill(my_parent_id, SIGTERM)

作为父母程序,我该如何捕获这个信号?

1 个答案:

答案 0 :(得分:3)

注册以捕获信号:

void termination_handler(int sig)
{
   /* do something */
}

struct sigaction handler;

handler.sa_handler = termination_handler;
sigemptyset (&handler.sa_mask);
handler.sa_flags = SA_RESTART;

sigaction(SIGTERM, &handler, NULL);

这是一个很好的example page

您可以使用旧样式,但不建议:

void termination_handler()
{
    /* do something */
}

signal(SIGTERM, termination_handler);