C编程基础shell

标签 c linux unix

我正在尝试编写一个简单的 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/

相关文章:

c - 在 gnuplot 和 C 中将绘图另存为 png

objective-c - 在 Objective-C 中如何加二?

linux - 通过交互式 shell 与脚本查找名称中带有星号 (*) 的文件

linux - 当执行 passwd 命令时(我知道,具有 root 权限),它不能被利用吗?如果不是,为什么?

linux - 通过 websocket 将一个 STDIN 流式传输到多个客户端

c - 有没有办法将 scanf 与 "if"和 "else"语句一起使用?

drand48() 能返回 1 吗?

linux - 在 Unix 中搜索文件

php - Codeigniter 远程数据库连接问题

unix - 如何通过 UNIX mailx 命令发送电子邮件?