在某些线程库中,线程中通过fork创建的子进程无法通过wait或waitpid清理掉,原因是线程里面屏蔽的SIG_CHLD信号。
可在线程主函数加入以下代码解决:
signal(SIGCLD, SIG_IGN); /* don‘t need to wait child process */
忽略这个信号后的作用是,告诉系统不关心子进程的执行返回值,系统可以自动回收所有结束的子进程。
本文出自 “记录点滴收获成长” 博客,请务必保留此出处http://gofly.blog.51cto.com/4344767/1692465
原文地址:http://gofly.blog.51cto.com/4344767/1692465