Linux

/dev/stdout 如何在 linux 中分別指向不同的程序?

  • March 24, 2020

我可以理解每個程序 fd 0,1,2 都指向 /dev/stdin、/dev/stdout、/dev/stderr。如果我將一些數據寫入 /dev/stdin,我只能從相應程序的 fd 1 接收數據。

如果每個程序 stdout (fd 1) 都指向 /dev/stdout 那麼如果我向 /dev/stdin 寫入一些數據應該廣播到所有程序嗎?我錯過了什麼嗎?

在 Linux 上,/dev/std{in,out,err}不要連接到設備,它們可以訪問每個程序的相應文件描述符。查看輸出ls -l /dev/std*

lrwxrwxrwx. 1 root root 15 Feb 24 09:34 /dev/stderr -> /proc/self/fd/2
lrwxrwxrwx. 1 root root 15 Feb 24 09:34 /dev/stdin -> /proc/self/fd/0
lrwxrwxrwx. 1 root root 15 Feb 24 09:34 /dev/stdout -> /proc/self/fd/1

所以這一切都由/proc/self; 查看/proc/self/ 用於哪個程序?

引用自:https://unix.stackexchange.com/questions/574597