其他操作系统

其他操作系统

POSIX 是否规定stdinis 0、stdoutis 1 和stderris 2 或者这只是一个约定?其他系统是否偏离该约定,或者这是一个安全的假设?

答案1

看起来它们在 POSIX 规范中是标准化的,

ISO C 似乎对此相对沉默,允许内核将其想要的任何内容分配给称为STDOUTSTDERR和 的描述符STDIN。但是 POSIX 文档unistd.h明确说明了他们应该在该级别解决什么问题。

其他操作系统

答案2

Shell 命令语言的 POSIX 规范,第 2.7 节,重定向,说

用于重定向的总体格式是:
 [n] 重定向操作字

号码n是一个可选的十进制数字,指定文件描述符编号; …
    ︙
… 值 0、1 和 2 具有特殊含义和常规用途,并且由某些重定向操作隐含;他们被称为标准输入,标准输出, 和标准误, 分别。 ……

    ︙

重定向输入的一般格式是:
 [n ]<单词

其中可选的n代表文件描述符号。如果省略该数字,则重定向应引用标准输入(文件描述符 0)。

…还有一个类似的段落,表示>相当于1>,指的是标准输出。

相关内容