【发布时间】:2013-06-14 02:56:51
【问题描述】:
我是C下进程使用的新手,我有一个与子进程中文件描述符的linux行为有关的问题。
我发现了文件描述符在子进程和父进程之间共享的信息,并且编号为0,1,2的文件描述符是标准输入输出和错误, 所以我认为如果我分叉该进程,我将拥有相同的输入和输出目录,但是当我在子进程中更改它时,它们在父进程中不会更改。我的问题是,它是否适用于每个文件描述符,所以如果我决定让我们说在子进程中覆盖文件描述符编号 100,它在子进程和父进程中会有所不同,或者只有文件描述符 0、1、2 被认为是特殊的。
最好的问候
【问题讨论】:
-
覆盖文件描述符号是什么意思?
-
你说的是线程还是进程?
-
是的,对不起,我的意思是进程,覆盖我的意思是 dup2(fd, 1)
-
你真的需要阅读像advancedlinuxprogramming.com这样的好材料
-
@BasileStarynkevitch 我刚开始阅读这个主题,但我必须制作 ls | 的管道。 grep | echo 进程,我很惊讶我可以覆盖每个进程中的输入/输出并获得结果,但这对我来说很有意义,但在材料中提到文件描述符由进程与子进程共享