gpt4 book ai didi

c - waitpid 调用后如何将自己的 shell 置于前台?

转载 作者:太空狗 更新时间:2023-10-29 11:18:09 25 4
gpt4 key购买 nike

我正在尝试为我的学校作业制作我自己的 shell,在成功调用 fork 之后,我想将来自 fork() 函数的 pid 放入前台,然后我想将我自己的 shell 放入后台。然后在 waitpid 函数之后,我需要将我自己的 shell 再次进入前台。为此,我是这样想的:

        if(tcsetpgrp(0, getpgid(pid))!=0)
perror("Foreground error: ");

waitpid(pid, NULL, 0);

if(tcsetpgrp(0, getpgid(shellpid))!=0)
perror("Foreground error: ");}

但是在新进程完成后,linux shell 停止了我自己的 shell。例如,ls 命令是图中的新进程。 Please look at here: for terminal screen shot

最佳答案

添加“信号(SIGTTOU,SIG_IGN);”在 tcsetpgrp 解决我的问题之前。 – Ali Can Üstünel

关于c - waitpid 调用后如何将自己的 shell 置于前台?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34190951/

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