我正在尝试编写一个简单的shell,它接受命令行输入并将其作为后台任务执行。
如何允许子进程在完成后向父进程报告,就像Bash shell一样?
user@user-desktop:~$ sleep 10 &
[1] 3729
user@user-desktop:~$ sleep 2 &
[2] 3730
user@user-desktop:~$
[1]- Done sleep 10
[2]+ Done sleep 2发布于 2011-10-16 18:45:53
因为这是你的作业,所以我不会给你完整的答案。
GNU Glibc manual列出了作业控制外壳要求。让我们看看你是否能理解它。
基本上:
SIGCHLD (或wait)才能监视作业读完后再问。
发布于 2011-10-16 18:48:29
您需要编写一个信号处理程序来处理SIGCHLD (有时称为SIGCLD)信号,当子进程终止时,该信号将被发送到父进程。
https://stackoverflow.com/questions/7783756
复制相似问题