为什么程序中,常会用到signal(SIGCHLD,SIG_DFL) 执行system函数时,SIGCHLD信号,最好被显示的: signal( SIGCHLD, SIG_DFL ) 一下,因为system函数中,使用到了fork(),waitpid.如果父进程忽略了SIGCHID信号,waitpid就没有不能得到子进程的SIGCHLD信号,那么,处理的返回值就会有问题。system的返回值也会有问题。通常的做法是: signal( SIGCHLD, SIG_DFL ); system( command ); signal( SIGCHLD, SIG_IGN ); Jesus Love You! 转载自:http://blog.sina.com.cn/s/blog_633685790101ks9q.html
时间: 2024-10-11 15:59:59