在linux中有一个真正的流i/o文件吗



我混淆了linuxi/o stream的概念
流有三种类型:标准输入。标准输出和标准误差
内存或硬盘中是否有stdinstdoutstderr的真实文件
例如:内核将所有键盘输入写入一个stdin文件?然后bash(例如)读取这个文件
如果这是真的,那意味着任何软件都可以在任何时间读取这个文件?

每个进程(至少在最初)都为其打开了标准的stdin/stdout/stderr文件句柄。每个进程在/proc中也有一个表示,/proc是内核创建的虚拟文件系统,用于访问进程的各种内容。所以…

marc@panic:~$ ps
  PID TTY          TIME CMD
 4367 pts/0    00:00:00 bash     <--- my bash process
 4394 pts/0    00:00:00 ps
marc@panic:~$ cd /proc/4367/fd   <---my bash processes's /proc file descriptors
marc@panic:/proc/4367/fd$ ls -l
total 0
lrwx------ 1 marc marc 64 Nov 17 11:17 0 -> /dev/pts/0
lrwx------ 1 marc marc 64 Nov 17 11:17 1 -> /dev/pts/0
lrwx------ 1 marc marc 64 Nov 17 11:17 2 -> /dev/pts/0
lrwx------ 1 marc marc 64 Nov 17 11:18 255 -> /dev/pts/0

文件012对应于stdin、stdout、stderr,它们只是登录会话正在使用的特定伪终端的符号链接。

我不会称这些真实文件,但:

您可以在Linux上使用/dev/stdout等。

相关内容

  • 没有找到相关文章

最新更新