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()”处理。