在 Linux 内核上,stdin、stdout和stderr流在 中具有相应的条目/proc。该/proc文件系统是一种信息结构,提供系统的可见性;它不是这些流的实现。
首先stdout是一个C概念:I/O流的实例FILE *。操作系统内核(无论是Linux还是Windows)对此一无所知。这些流保存操作系统文件描述符/句柄。Linux 或 Windows 程序stdout由于链接到 C 库而具有流,但对于不是用 C 编写的程序或使用 C 运行时的基于 C 的语言来说,情况可能并非如此。
类 Unix 操作系统中的进程具有编号的文件描述符,从零开始。按照惯例,前三个\xe2\x80\x940、1和2\xe2\x80\x94分别是输入、输出和错误。
\n在 Microsoft Windows 中,也有类似的概念。一个进程具有三个类型的句柄HANDLE,它们具有相同的用途。当您使用 创建进程时,它们在具有以下成员的结构CreateProcess中指定:STARTUPINFO
HANDLE hStdInput;\nHANDLE hStdOutput;\nHANDLE hStdError;\nRun Code Online (Sandbox Code Playgroud)\nSTARTF_USESTDHANDLES如果指定了标志,则这些是有意义的。
Microsoft Windows 没有/proc文件系统。它具有基于 API 的机制来检查各种系统状态。系统实用程序被写入这些 API。例如,Handle程序可用于检查哪些进程打开了哪些文件。\nLinux 上的类似应用程序将/proc在后台进行遍历。
| 归档时间: |
|
| 查看次数: |
3244 次 |
| 最近记录: |