我理解文件描述符(或文件处理程序)是Linux 系统中的一种文件 IO 技术。
我也知道每个进程都有 3 个标准流(即 stdin、stdout 和 stderr),它们由描述符从 0 到 3 的文件表示。
但是,我注意到我检查的所有进程lsof -p <pid>都有一个255具有读取权限的额外文件描述符。
从这个答案中,我了解到这个特性是特定于Bash shell 的,但是答案和引用的来源都没有真正解释这个文件描述符的用途。
我的问题:
我只是注意到默认情况下 bash 交互式 shell 会写入提示并将您键入的任何内容回显到文件描述符 2 (stderr)。这可以通过在 strace 中运行 bash 来验证。
这是什么原因?为什么它不将这些东西写入标准输出?