我有一个关于终端和流程如何工作的一般性问题.
从任何进程,如果我写入stdout(即文件描述符2),它将在终端窗口上绘制.我的问题是,这是如何实际实现的? stdout是一个实际的’虚拟’文件,终端一直在阅读和在屏幕上绘制内容吗?或者在进程/标准输出流和终端之间是否存在某种IPC?
请注意,当我说终端时,我指的是一些通用的GUI终端/控制台,例如Mac上的终端.
附:如果这个问题不清楚,请告诉我,我很乐意再次尝试解释:)
谢谢!
当你包含stdio.h时,stdout是一个在那里定义的变量.
原文链接:https://www.f2er.com/bash/384834.htmlstdout – a pointer to a FILE which refers to the standard output stream,usually a display terminal
而且,正如Russ C所提到的,一切都是Unix中的文件,所以你在这方面是正确的.
apparently,每个打开的unix程序默认将其输出,输入和错误流设置为stdout,stdin和stderr.但是,他们可以改变.就像你在redirect中使用’<'标准输入文件的终端一样,你可能会在语句中这样做
MysqL -u root -p dbname < ./data.sql
我想这并没有真正回答你关于实现的真实细节的所有问题,但是知道它是一个文件流可能会让你很好地了解正在发生的事情.