儘管我對UNIX非常熟悉,並且已經對其進行了很長時間的編程,但我不習慣進行文件操作。UNIX文件描述符重用
我知道0/1/2文件描述符是標準輸入,輸出和錯誤。我意識到,無論何時一個進程打開一個文件,它都會被賦予一個最小值的描述符,這個描述符尚未被使用 - 而且我理解了關於使用dup/dup2的一些事情。
雖然我對過程之間的文件描述符感到困惑。每個進程是否有自己的0/1/2描述符用於輸入/輸出/錯誤,還是3個描述符在所有進程之間共享?你如何在3個不同的shell中運行3個程序,並且如果他們共享,他們都只能得到他們的程序輸出?
如果兩個程序在啓動後打開myfile.txt,它們都會使用文件描述符#3,還是第二個程序會在使用3之後使用#4?
我知道我在那裏以幾種方式問過同一個問題,但我只是想說清楚。越詳細越好:)編程時,我從來沒有遇到過這些問題,但是我正在閱讀一本UNIX書以瞭解更多內容,並且我突然意識到這讓我困惑不已,之前的細節。
如果您在發佈中添加'c'語言標記,您會收到更好的評論。我想我已經多次討論過這個問題,所以搜索'[c]標準輸出描述符'。祝你好運。 – shellter
謝謝,添加標籤 - 我會試着看看其他問題:) –