File-Descriptors

文件描述符是否從未打開?

  • July 17, 2018

當然文件可以打開,也可以不打開。

但是,根據定義,文件描述符是指打開的文件(對嗎?)。(嗯,除非它指的是文件以外的東西,比如管道或你有的東西。但它仍然是打開的。)

我多次遇到過“打開文件描述符”這個片語。我認為這是多餘的,事實上除了打開的文件描述符之外沒有其他類型的文件描述符——但我想驗證這一點。

除了“打開”之外,文件描述符是否處於任何其他狀態?(當它關閉時,它不會不復存在嗎?)

一個程序執行這個:

關閉(0);

標準輸入文件描述符的值沒有改變,但它不再引用打開的文件描述。它可用於重新分配。例如,隨後嘗試使用它read()會導致,EBADF因為雖然它仍然是一個文件描述符,但它不是一個引用打開文件描述的分配的描述符。這是一個錯誤的文件描述符。

進一步閱讀

  • close()開放組基本規範第 7 期。IEEE 1003.1:2008。公開組。2018 年。
  • read()開放組基本規範第 7 期。IEEE 1003.1:2008。公開組。2018 年。

引用自:https://unix.stackexchange.com/questions/456692