gpt4 book ai didi

python - Standard Streams 文件是否存储在磁盘中?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:07:24 25 4
gpt4 key购买 nike

来自维基百科:

In computer programming, standard streams are preconnected input and output communication channels between a computer program and its environment when it begins execution. The three I/O connections are called standard input (stdin), standard output (stdout) and standard error (stderr). Originally I/O happened via a physically connected system console (input via keyboard, output via monitor), but standard streams abstract this."

正如我从 wiki 中了解到的,Stdin 传统上是键盘,而 stdout 是监视器(输出)。但是今天这些是什么,因为大多数现代计算机都使用 GUI。例如,如果我打开 Linux Shell 的 cmd.exe 或其他任何东西,然后使用以下命令运行 Python:

# In cmd.exe   
>>> import sys
>>> sys.stdout
<open file '<stdout>', mode 'w' at 0x000000000224B0C0>

A) 我注意到 sys.stdout 是内存中的一个文件(对象),它只是一个由 Python 解释器创建的对象吗?还是 sys.stdout 物理存储在硬盘驱动器或任何存储方式中?

B) 我认为 cmd.exe 是一个 Win32 应用程序,那么它有标准输入、标准输出或标准错误吗?如果有,它们在哪里?它们只是存储在内存中吗?

最佳答案

它们被称为流而不是文件是有原因的:它们代表数据的源或汇。有时发送到流的数据存储在磁盘中的文件中,但有时数据只是由另一个程序接收。

例如,当您将两个命令组合在一起时:

$ ls | sort

第一个命令的标准输出连接到第二个命令的标准输入。

关于标准流在简单外壳中的连接位置,标准流连接到虚拟终端程序。在 linux 中,它将是程序 shell(xterm、gnome-terminal、kdeterminal...)。在 Windows 中,它将是控制台管理器,它由操作系统模块直接创建(通常为 csrss.exe,但详细信息因 Windows 版本而异)。

然后,当您写入标准输出时,写入的字符显示在屏幕上,当您从标准输入读取时,终端等待键盘输入。

关于python - Standard Streams 文件是否存储在磁盘中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36680945/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com