/dev/stdin、/dev/stdout、および/dev/stderrの移植性はどのくらいですか?

/dev/stdin、/dev/stdout、および/dev/stderrの移植性はどのくらいですか?

場合によっては、標準IOストリームの1つの「等価パス」(stdin、、、stdout)を指定する必要があります。stderr私は99%の時間Linuxを使用しているので/dev/待つ準備ができています/dev/stdin。そしてこれ〜らしい正しいことをしなさい。

だからいくつかの質問があります。

  1. Linux環境ではstdin、、、 stdoutおよびを、およびstderrと同一視するのは安全ですか(はい/いいえ)?/dev/stdin/dev/stdout/dev/stderr

  2. より一般的に、この同等性は「十分」ですか?持ち運べる「?

POSIX 参照が見つかりません。

ベストアンサー1

Linuxでは長い間使用されてきました。これはいいえPOSIX、たとえ多くの実際のシェル(AT&TkshおよびAT&Tを含むbash)がOSにない場合は、これをエミュレートしますが、このエミュレーションはシェルレベルでのみ機能します(つまり、パラメータなどの明示的に機能しないリダイレクトまたはコマンドライン引数open())。つまり、次のことが可能でなければなりません。最大何らかの方法で商用Unixシステム(時には/dev/fd/Nさまざまな整数で表記されますが、NほとんどのシステムはLinuxや* BSDなどのシンボリックリンクを提供します)。

おすすめ記事