その他のオペレーティングシステム

その他のオペレーティングシステム

stdinPOSIXは0、1、2stdoutを指定しますかstderr、それとも単なる慣例ですか?他のシステムがこの規則から外れますか、それともこれは安全な仮定ですか?

ベストアンサー1

POSIX仕様に標準化されているように見えますが、

  • POSIX.1-2017プロキシ経由unistd.h

    ヘッダーは、ファイルストリームに対して次のシンボル定数を定義する必要があります。

    • STDERR_FILENOstderrのファイル番号2.
    • STDIN_FILENO標準入力のファイル番号は0です。
    • STDOUT_FILENO1. 標準出力のファイル番号です。
  • しかし、stderr"、、、stdin-stdout標準I / Oストリーム"のPOSIXドキュメント状態、

    このボリュームPOSIX.1-2017はISO C規格に準拠しています。

  • これISO ISO/IEC 9899:201x 標準ただ説明すると、

    定義済みの3つのストリームstdin、stdout、およびstderrは、プログラムの開始時に方向が指定されていません。

ISO Cはこれに対して比較的沈黙しているように見え、カーネルが、およびSTDOUTというSTDERR記述子に必要なものを割り当てることを許可しますSTDIN。しかし、POSIX ドキュメントには、unistd.hそのレベルで解決すべき問題が何であるかが明確に記載されています。

その他のオペレーティングシステム

おすすめ記事