标准 I/O 文件描述符

标准 I/O 文件描述符

我编码这个

$ ls -l 1> stdout.txt

我得到了所需的输出,

1> stdout.txt

将输出从标准输出重定向到文件 stdout.txt。

我在磁盘上没有看到任何此类文件。什么样的文件系统支持这样的文件,是内存文件系统

这和下面的有没有相似之处进程文件系统系统文件系统

答案1

如果您使用的是 Linux,并且我正确地阅读了您的问题,请查看/proc

对于特定过程,请查看/proc/[pid]/fd,例如ls -l /proc/123/fd/

还有一种特殊的方法可以通过以下方式访问当前进程 fd:/proc/self/fd

请注意,egls -l /proc/self/fd适用于ls进程,而不适用于您当前的 shell,您可以通过以下方式查看:

cat /proc/self/cmdline | tr '\000' '\n'

或者

cat /proc/self/status

最后看一下,特别是PPid你的 shell 的 PID。

Name:   cat
State:  R (running)
Tgid:   12696
Pid:    12696
PPid:   312

作为实验,您可以尝试打开两个终端窗口:

  1. 在窗口 1 中输入echo $$以获取该 shell 的 PID。
  2. 在窗口2中说cat /proc/[pid]/fd/1
  3. 在窗口 1 中开始输入并观察窗口 2 中发生的情况。

相关内容