我注册的主要的处理程序SIGTERM这样的:反正有参数传递给信号处理程序吗?
signal(SIGTERM, sigterm_handler);
而且处理程序是一个简单的:
void sigterm_handler()
{ exit(1); }
如果我需要传递给处理程序的几个参数像2个指针或其他什么?如何在信号功能中注册处理程序?或者至少......无论如何要实现这一目标?
注意:整个过程由第三方进程杀死,而不是自己。但在结束之前,我需要手动释放一些结构并将它们写入文件。
仅供参考,不调用exit()的信号处理函数里面 - 它不是异步信号安全的,因为它刷新stdio的缓冲区。在信号处理程序中使用_exit()。 – lightdee 2012-03-26 20:42:29
这真的很老了,它没有被接受的答案,但有一个重复的更新一点,只是重定向任何我标记为重复的读者。 – 2015-07-30 18:47:03