-1
我创建了一个接收来自另一个进程的命令的应用程序。 有两个退出命令。解决linux内核转储问题
exit:退出主进程(及其线程)并让子进程完成其任务。
现在退出:存在的主要过程(和他的线程),并发出了一个信号,退出子进程
的出口命令工作正常,但现在退出它不是,我当我使用它时会收到一条消息“退出(核心转储)”。
exit命令执行此功能。
void processExit(){
/* some code to close opened files and to wait for threads to finish (pthread_join) */
exit(EXIT_SUCCESS);
}
exit now命令执行此功能。
void processExitNow(){
signal(SIGQUIT, SIG_IGN);
kill(0, SIGQUIT);
processExit();
}
所以我觉得核心转储由杀功能引起的。但为什么会发生?我找不到问题。
谢谢。
'SIGQUIT'的目的是生成一个核心转储。使用不同的信号。 http://www.gnu.org/software/libc/manual/html_node/Termination-Signals.html –
@DarkFalcon感谢它的工作!顺便说一句,有没有办法发送一个信号给所有子进程而不发送给父进程呢? –
@DanielOliveira使用孩子的PID。它由'fork()'返回。你不能使用线程,因为它是相同的进程。不要将线程称为子进程。这是一个线程。 – Stargateur