C

POSIX 是否標準化文件描述符編號?

  • April 14, 2018

POSIX 是否要求stdin0、1stdoutstderr2 或者這只是一個約定?其他系統是否偏離了該約定,或者這是一個安全的假設?

似乎它們在 POSIX 規範中是標準化的,

標頭應為文件流定義以下符號常量:

+ STDERR_FILENOstderr 的文件號;2. + STDIN_FILENO標準輸入文件號;0。 + STDOUT_FILENO標準輸出的文件號;1.

本卷 POSIX.1-2017 遵循 ISO C 標準。

三個預定義的流 stdin、stdout 和 stderr 在程序啟動時是無方向的。

似乎 ISO C 在這方面相對沉默,允許核心將它想要的任何內容分配給稱為 , 和 的STDOUT描述STDERRSTDIN。但是 POSIX 文件unistd.h明確說明了他們應該在那個級別解決什麼問題。

其他作業系統

引用自:https://unix.stackexchange.com/questions/437602