Linux:实时信号
Linux: Real-Time Signals
我正在使用实时信号测试不同的场景,无法找到每个信号的含义,例如 SIGRTMIN+1 和 SIGRTMIN+13。
我能够发送和接收信号,但试图理解所有 SIGRTMIN+n 信号的含义。例如,我根据我的程序发送了多个信号,其中一个正在终止进程:
/* The child process executes this function. */
void
child_function (void)
{
/* Perform initialization. */
printf ("I'm here!!! My pid is %d.\n", (int) getpid ());
/* Let parent know you’re done. */
kill (getppid (), SIGUSR1);
/* Continue with execution. */
puts ("Bye, now....");
exit (0);
}
我想了解这些SIGRTMIN+13,如果我通过这个来强行杀死一个进程,它是如何工作的。
实时信号被设计用于应用程序定义的目的(由您来赋予它们意义),它们具有排队和伴随数据的优势,这是标准信号无法实现的,为了有效地使用它们,它们使用 sigqueue()“not kill()”发送,并由 sigaction()“not signal()”处理。
我正在使用实时信号测试不同的场景,无法找到每个信号的含义,例如 SIGRTMIN+1 和 SIGRTMIN+13。
我能够发送和接收信号,但试图理解所有 SIGRTMIN+n 信号的含义。例如,我根据我的程序发送了多个信号,其中一个正在终止进程:
/* The child process executes this function. */
void
child_function (void)
{
/* Perform initialization. */
printf ("I'm here!!! My pid is %d.\n", (int) getpid ());
/* Let parent know you’re done. */
kill (getppid (), SIGUSR1);
/* Continue with execution. */
puts ("Bye, now....");
exit (0);
}
我想了解这些SIGRTMIN+13,如果我通过这个来强行杀死一个进程,它是如何工作的。
实时信号被设计用于应用程序定义的目的(由您来赋予它们意义),它们具有排队和伴随数据的优势,这是标准信号无法实现的,为了有效地使用它们,它们使用 sigqueue()“not kill()”发送,并由 sigaction()“not signal()”处理。