如何设置我的后台进程处理程序
所以我正在编写一个可以同时具有前台和后台进程的外壳程序。我有一个:
signal(SIGCHLD, childHandler);
因此我有处理程序:
void childHandler(int signum){
int status, PID;
PID = waitpid(-1, &signum,WNOHANG);
}
该处理程序捕获更改状态的前台和后台子项。 我的 shell 似乎适用于前台进程。 但是,一旦我调用后台进程,事情就不再正常工作......我认为这可能是由于这个处理程序造成的。
任何人都可以看到是否有什么问题/缺失吗?
so I'm writing a shell that can have both foreground and background process. I have a:
signal(SIGCHLD, childHandler);
and thus I have handler:
void childHandler(int signum){
int status, PID;
PID = waitpid(-1, &signum,WNOHANG);
}
this handler captures both foreground and background children that change state.
My shell seems to work for foreground processes.
However, as soon as I call a background process, things don't work properly anymore... and I think it may be due to this handler.
Can anyone see if something's wrong/missing?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论