所以我正在编写一个可以同时具有前台和后台进程的shell。我有一个:
signal(SIGCHLD, childHandler);
因此我有处理程序:
void childHandler(int signum){
int status, PID;
PID = waitpid(-1, &signum,WNOHANG);
}
此处理程序捕获更改状态的前台和后台子项。我的外壳似乎适用于前台进程。但是,一旦我调用后台进程,事情就不再正常工作了......我认为这可能是由于这个处理程序。
任何人都可以查看是否有问题/丢失?