Linux
/dev/stdout 如何在 linux 中分別指向不同的程序?
我可以理解每個程序 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/
用於哪個程序?