加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

终端如何从stdout读取并在屏幕上绘制文本?

发布时间:2020-12-16 01:13:38 所属栏目:安全 来源:网络整理
导读:我有一个关于终端和流程如何工作的一般性问题. 从任何进程,如果我写入stdout(即文件描述符2),它将在终端窗口上绘制.我的问题是,这是如何实际实现的? stdout是一个实际的’虚拟’文件,终端一直在阅读和在屏幕上绘制内容吗?或者在进程/标准输出流和终端之间
我有一个关于终端和流程如何工作的一般性问题.

从任何进程,如果我写入stdout(即文件描述符2),它将在终端窗口上绘制.我的问题是,这是如何实际实现的? stdout是一个实际的’虚拟’文件,终端一直在阅读和在屏幕上绘制内容吗?或者在进程/标准输出流和终端之间是否存在某种IPC?

请注意,当我说终端时,我指的是一些通用的GUI终端/控制台,例如Mac上的终端.

附:如果这个问题不清楚,请告诉我,我很乐意再次尝试解释:)

谢谢!

当你包含stdio.h时,stdout是一个在那里定义的变量.

引用Wikipedia

stdout – 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

我想这并没有真正回答你关于实现的真实细节的所有问题,但是知道它是一个文件流可能会让你很好地了解正在发生的事情.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读