尽管我对UNIX非常熟悉,并且已经对其进行了很长时间的编程,但我不习惯进行文件操作。UNIX文件描述符重用
我知道0/1/2文件描述符是标准输入,输出和错误。我意识到,无论何时一个进程打开一个文件,它都会被赋予一个最小值的描述符,这个描述符尚未被使用 - 而且我理解了关于使用dup/dup2的一些事情。
虽然我对过程之间的文件描述符感到困惑。每个进程是否有自己的0/1/2描述符用于输入/输出/错误,还是3个描述符在所有进程之间共享?你如何在3个不同的shell中运行3个程序,并且如果他们共享,他们都只能得到他们的程序输出?
如果两个程序在启动后打开myfile.txt,它们都会使用文件描述符#3,还是第二个程序会在使用3之后使用#4?
我知道我在那里以几种方式问过同一个问题,但我只是想说清楚。越详细越好:)编程时,我从来没有遇到过这些问题,但是我正在阅读一本UNIX书以了解更多内容,并且我突然意识到这让我困惑不已,之前的细节。
如果您在发布中添加'c'语言标记,您会收到更好的评论。我想我已经多次讨论过这个问题,所以搜索'[c]标准输出描述符'。祝你好运。 – shellter
谢谢,添加标签 - 我会试着看看其他问题:) –