Linuxで/dev/stdoutを別のプロセスとして指定する方法は?

Linuxで/dev/stdoutを別のプロセスとして指定する方法は?

各プロセス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/`はどのプロセスに属していますか?

おすすめ記事