我正在尝试编写一个简单的 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
最佳答案
因为这是你的作业,我不会给你完整的答案。
GNU Glibc manual列出作业控制外壳的要求。让我们看看你是否能理解它。
基本上:
您必须更改控制终端才能使作业在后台运行
您必须处理
SIGCHLD
(或wait
)以监控作业
看完再问。
关于C编程基础shell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7783756/