所以我正在写一个可以同时拥有前景和后台进程的shell。我有一个:
signal(SIGCHLD, childHandler);
因此我有处理程序:
void childHandler(int signum){
int status, PID;
PID = waitpid(-1, &signum,WNOHANG);
}
此处理程序捕获改变状态的前景和后台子节点。 我的shell似乎适用于前台进程。 但是,一旦我调用后台进程,事情就不再正常工作......我认为这可能是由于这个处理程序。
任何人都可以看到有什么不对吗?