在这个问题中:默认分配的文件描述符3是什么?被使用/proc/self/fd
,它取消引用/proc/32157/fd
.是这样吗pid
?为什么我不能echo $self
?我以前从未见过self
。
答案1
该/proc
树是动态生成的操作系统的窗口。当进程引用 时/proc/self
,内核会self
使用调用者的pid
.这样就可以避免进程对自身进行 pid 查找,但是/proc/{pid}
如果您已经知道的话,您可以通过执行 pid 查找来获取相同的信息节点pid
。
Unix 的优点之一是它如何将所有这些东西统一在/
根命名空间下,并使它们表现得像文件和目录,即使它们不是真正的物理文件系统。
你不能回显,$self
因为这是一个完全不同的概念:做一个echo $[varname]
是 shell 的事情:你的 shell 有维护状态的“环境变量”。这与文件系统无关/proc
。