gpt4 book ai didi

c - 在 Shell 中使用管道进行作业控制

转载 作者:太空宇宙 更新时间:2023-11-04 04:53:14 27 4
gpt4 key购买 nike

我正在用 C 编写一个 shell。我正在尝试为每个作业设置一个新的进程组。每个管道的第一个进程成为作业进程组的领导者,其他进程加入领导者的进程组。

所以在这种情况下,cat somefile | wccat 进程将成为进程领导者。

如何使用 setpgid 实现此行为?如果我循环遍历每个进程,我是否需要存储第一个 fork 的 pid 的值并将其用作后续循环迭代的组 ID,以在中设置适当的进程组 ID子类?

最佳答案

如果我是你,我会使用父进程收到的 fork() pid 并执行 setpgid(child_pid,your_gid);。 getpgid(0) 可用于返回您的组 ID。使用这两条信息来执行 setpgid()。

关于c - 在 Shell 中使用管道进行作业控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12765336/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com