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

mus*_*hil 24 file-descriptors

$ 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
Run Code Online (Sandbox Code Playgroud)

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

Dan*_*man 41

无:有三个标准文件描述,STDIN、STDOUT 和 STDERR。它们分别被指定为 0、1 和 2。

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

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

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