c - parent 去世后,不会将标准输入控制权交给 child

标签 c fork stdin

考虑以下代码,当父进程终止时,stdin 控制权被 shell 收回,除了通过“ps -e”命令外,无法看到子进程正在运行。 有没有办法在父进程死亡之前将 stdin 控制权交给子进程? 我在这里阅读了一些类似的主题,但没有一个为这个问题提供解决方案。有人建议使用“#cat | ./a.out”作为解决方法,但如果有的话,我想要一个代码级解决方案。

pid = fork();
if( pid == 0)
{
    while(1);
}
else
{
    //wait(&childstatus);
    printf("Hello From Parent\n");
}

最佳答案

是的,这就是 shell 的工作方式。如果您不希望 shell 占用事件进程组,请让父进程保持事件状态。

关于c - parent 去世后,不会将标准输入控制权交给 child ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33604687/

相关文章:

c++ - GetTickCount() 换行时会发生什么?

c - 打印带有和不带有换行符的空字符指针时的不同输出

perl - 在 Perl 中读取 STDIN 上的管道输入后,我可以提示用户输入吗?

使用 C 中的指针将数组的内容复制到多维数组?

c++ - 我想知道哪个是适用于 Windows 7 的最佳 'C' 编译器?

Perl:将序列化哈希通过管道传递给 fork 进程

c - 如果我 fork() 然后执行 execv(),谁拥有控制台?

c - 方阵与fork()的乘法;在 C

c - 从 stdin 读取数据而不阻塞的可移植方法

c - 从 stdin 读取时子进程被孤立时的奇怪行为