場合によっては、標準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が提供するようにシンボリックリンクを提供します。