当前位置: 技术问答>linux和unix
子进程重定向标准输入的问题
来源: 互联网 发布时间:2016-08-18
本文导语: 我pipe了一个管道,然后fork了一个子进程,之后如果我在子进程里调用如下的: dup2(fd[0],STDIN_FILENO) 因为子进程在fork之后继承了父进程的文件描述符,所以在dup2之前父子进程的标准输入指向的是同一个文件描述符,但...
我pipe了一个管道,然后fork了一个子进程,之后如果我在子进程里调用如下的:
dup2(fd[0],STDIN_FILENO)
因为子进程在fork之后继承了父进程的文件描述符,所以在dup2之前父子进程的标准输入指向的是同一个文件描述符,但是dup2之后子进程的标准输入和父进程的标准输入指向不一致了,大家都有了一个自己属于自己的stdin。不知道我这样理解对不对
dup2(fd[0],STDIN_FILENO)
因为子进程在fork之后继承了父进程的文件描述符,所以在dup2之前父子进程的标准输入指向的是同一个文件描述符,但是dup2之后子进程的标准输入和父进程的标准输入指向不一致了,大家都有了一个自己属于自己的stdin。不知道我这样理解对不对
|
是滴,都有各自的stdin。。。内核会自动为每个进程打开三个文件,stdin,stdout,stderr。要是都是同一个不就乱套了啊