各プロセスfd 0,1,2が/dev/stdin、/dev/stdout、/dev/stderrを指していることがわかります。 /dev/stdinにいくつかのデータを書き込むと、そのプロセスのfd 1からのみデータを受け取ることができます。
すべてのプロセスstdout(fd 1)が/ dev / stdoutを指している場合は、/ dev / stdinにいくつかのデータを書き込むと、すべてのプロセスにブロードキャストする必要があります。そうですか?何か抜けましたか?
答え1
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/`はどのプロセスに属していますか?