日期:2014-05-16  浏览次数:20542 次

子进程重定向标准输入的问题
我pipe了一个管道,然后fork了一个子进程,之后如果我在子进程里调用如下的:
dup2(fd[0],STDIN_FILENO)
因为子进程在fork之后继承了父进程的文件描述符,所以在dup2之前父子进程的标准输入指向的是同一个文件描述符,但是dup2之后子进程的标准输入和父进程的标准输入指向不一致了,大家都有了一个自己属于自己的stdin。不知道我这样理解对不对

------解决方案--------------------
是滴,都有各自的stdin。。。内核会自动为每个进程打开三个文件,stdin,stdout,stderr。要是都是同一个不就乱套了啊