标准输入、标准输出、标准错误文件描述符在 AIX(unix) 中的位置在哪里

asl*_*eea 6 aix stdout stdin stderr

在我的 Linux 环境中,文件描述符位于 /dev/fd。

标准输入、标准输出、标准错误文件描述符在 AIX(unix) 中的位置在哪里。

我找不到他们。

Tho*_*key 8

这个问题是基于对 proc 文件系统的普遍性的误解。实现此功能的系统(例如 Solaris 和 Linux)具有可用于编写脚本的特殊设备,包括/dev/fd后跟文件描述符(编号)。

用Solaris,下/dev/fd是虚拟文件夹/dev,而 Linux 使用符号链接/proc进入与您的进程 ID 匹配的(虚拟)文件夹。proc 文件系统没有标准,细节也会有所不同。

检查 AIX 5.3 和 7.1 系统,它们确实实现了 proc 文件系统,但没有/dev/fd. 然而,他们确实有一个虚拟文件系统/proc,您可以在该文件系统下找到当前的进程 ID,在fd文件系统下是一个包含文件描述符的文件夹。

按照惯例,文件描述符被初始化为 0, 1, 2 for stdinstdoutstderr

进一步阅读:


Jul*_*ier 5

这些是人工文件描述符,当然不需要进行处理,这解释了它们历史上不存在并且在某些系统上仍然不存在。

shell 根据您的 TTY 处理这些标准文件描述符。当 shell 启动时,它会调用isatty(),如果它是(TTY),它会自动打开其上的标准文件描述符。