当然文件可以打开,也可以不打开。
但是,根据定义,文件描述符是指打开的文件(对吗?)。(嗯,除非它指的是文件以外的东西,比如管道或你有的东西。但它仍然是打开的。)
我多次遇到过“打开文件描述符”这个短语。我认为这是多余的,事实上除了打开的文件描述符之外没有其他类型的文件描述符——但我想验证这一点。
除了“打开”之外,文件描述符是否处于任何其他状态?(当它关闭时,它不会不复存在吗?)
当然文件可以打开,也可以不打开。
但是,根据定义,文件描述符是指打开的文件(对吗?)。(嗯,除非它指的是文件以外的东西,比如管道或你有的东西。但它仍然是打开的。)
我多次遇到过“打开文件描述符”这个短语。我认为这是多余的,事实上除了打开的文件描述符之外没有其他类型的文件描述符——但我想验证这一点。
除了“打开”之外,文件描述符是否处于任何其他状态?(当它关闭时,它不会不复存在吗?)
一个程序执行这个:
标准输入文件描述符的值没有改变,但它不再引用打开的文件描述。它可用于重新分配。例如,随后尝试使用它
read()
会导致,EBADF
因为虽然它仍然是一个文件描述符,但它不是一个引用打开文件描述的已分配的描述符。这是一个错误的文件描述符。进一步阅读
close()
”。 开放组基本规范第 7 期。IEEE 1003.1:2008。公开组。2018 年。read()
”。 开放组基本规范第 7 期。IEEE 1003.1:2008。公开组。2018 年。这似乎是一个很好的区别,对不起。请尽量不要假设其他人会知道与您相同的确切定义,并确保可以从上下文中解决任何歧义。我可以写一个与您一致但似乎不同意其他答案的答案,引用如下:
http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_258
因此,如果它不完全引用一个打开的文件描述,它就不能是一个文件描述符。还
http://pubs.opengroup.org/onlinepubs/9699919799/functions/close.html