默认情况下分配的文件描述符3是什么?


19
$ ls -og /proc/self /proc/self/fd
lrwxrwxrwx 1 64 Jun 18 11:12 /proc/self -> 32157

/proc/self/fd:
total 0
lrwx------ 1 64 Jun 22  2012 0 -> /dev/tty1
lrwx------ 1 64 Jun 22  2012 1 -> /dev/tty1
lrwx------ 1 64 Jun 22  2012 2 -> /dev/tty1
lr-x------ 1 64 Jun 22  2012 3 -> /proc/32157/fd

默认情况下分配的文件描述符3是什么?

Answers:


34

没有:没有三个标准文件描述,即STDIN,STDOUT和STDERR。它们分别分配给0、1和2。

您所看到的是ls(1)工作原理的产物:为了读取/proc/self/fd目录的内容并显示它,它需要打开该目录。

这意味着它获得了文件句柄,通常是第一个可用的句柄,因此为3。

例如,如果要cat在单独的控制台上运行并进行检查/proc/${pid}/fd,您会发现仅分配了前三个控制台。


嗯,这可以解释结果,包括3指向的事实/proc/32157/fd。(我为什么想念它?)谢谢!
musiphil
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.