そのため、フォアグラウンド プロセスとバックグラウンド プロセスの両方を持つことができるシェルを作成しています。私は持っています:
signal(SIGCHLD, childHandler);
したがって、私はハンドラーを持っています:
void childHandler(int signum){
int status, PID;
PID = waitpid(-1, &signum,WNOHANG);
}
このハンドラーは、状態が変化するフォアグラウンドとバックグラウンドの両方の子をキャプチャします。私のシェルはフォアグラウンド プロセスで動作するようです。しかし、バックグラウンド プロセスを呼び出すとすぐに、正常に動作しなくなります...これは、このハンドラーが原因である可能性があります。
何かが間違っている/欠けているかどうか、誰でも見ることができますか?