場合によっては、標準IOストリームの1つ(stdin
)の「パス相当」を指定する必要があります。 、stdout
、stderr
)。 Linuxで作業する時間の99%は、/dev/
の前に付けるだけです。 /dev/stdin
を取得するには 、など、この「 正しいことをするために」。しかし、1つには、私は常にそのような論理的根拠に不安を感じていました(もちろん、それが機能しないまでは「機能しているように見える」ためです)。さらに、この操作がどれほどポータブルであるかについては、私にはよくわかりません。
だから私はいくつか質問があります:
-
Linuxのコンテキストでは、
stdin
と同等にするのは安全ですか(はい/いいえ)? 、
stdout
、およびstderr
/dev/stdin
を使用 、/dev/stdout
、および
/dev/stderr
? -
より一般的には、この同等性は「適切にポータブル 「?
POSIXリファレンスが見つかりませんでした。
承認された回答:
Linuxで利用可能になり、先史時代に戻りました。
そうではありません POSIX、ただし多くの実際のシェル(AT&T ksh
を含む) およびbash
)OSに存在しない場合はシミュレートします。このシミュレーションはシェルレベルでのみ機能することに注意してください(つまり、リダイレクトまたはコマンドラインパラメータであり、open()
などの明示的な引数としては機能しません。 )。
とはいえ、ほとんどで利用できるはずです。 商用Unixシステム、何らかの方法で(/dev/fd/N
と綴られることもあります) さまざまな整数の場合N
、ただし、それを備えたほとんどのシステムは、Linuxおよび*BSDが提供するようにシンボリックリンクを提供します。