打开的文件不是磁盘上的文件。它们是流(伪文件)、stdin (0)、stdout (1) 和 stderr (2)。以下是POSIX 标准的相关摘录:
具有关联缓冲的文件称为流,并被声明为指向已定义类型 FILE 的指针。fopen() 函数应为流创建某些描述性数据,并返回一个指针以在所有后续事务中指定流。通常,有三个打开的流,在标头中声明了常量指针,并与标准打开文件相关联。
在程序启动时,应预定义三个流,无需明确打开:标准输入(用于读取常规输入)、标准输出(用于写入常规输出)和标准错误(用于写入诊断输出)。打开时,标准错误流没有完全缓冲;当且仅当可以确定流不是指交互设备时,标准输入和标准输出流才被完全缓冲。