gpt4 book ai didi

c++ - 深入了解事物是如何打印到屏幕上的(cout、printf)以及我似乎在教科书上找不到的真正复杂事物的起源

转载 作者:IT老高 更新时间:2023-10-28 23:27:46 32 4
gpt4 key购买 nike

我一直想知道这个,但仍然没有找到答案。每当我们使用“cout”或“printf”时,屏幕上究竟是如何打印的?文本是如何出现的......(这里可能是一个相当模糊的问题,不管你给我什么都不好用。)。那么基本上这些功能是如何制作的?..它是组装吗?如果是这样,那从哪里开始?这带来了更多的问题,比如他们到底是如何制作 openGl/directx 函数的......

分解它,人们分解它。:)

最佳答案

这是一个带有缩写的场景:

  1. printfcout 将字符放入用户程序地址空间的缓冲区中。
  2. 最终缓冲区会填满,或者 printf 可能要求提前清空缓冲区。无论哪种方式,I/O 库都会调用操作系统,操作系统会将缓冲区的内容复制到自己的空间中。
  3. 假设输出文件绑定(bind)到终端,操作系统将字符传递给终端应用程序。
  4. 终端应用决定对于缓冲区中的每个字符,它需要在屏幕上绘制像素。
  5. 终端应用程序设置像素绘制指令,并要求窗口管理器代表它执行此操作。 (在当今的 Unix 上,这通常是 X 服务器。)
  6. 窗口管理器获取像素。如果窗口实际上在屏幕上可见,则窗口管理器会更新一个保存可见像素的缓冲区(称为帧缓冲区)。然后,窗口管理器可能会通知操作系统,或者更可能的是,窗口管理器与操作系统串通一气,并且它们共享相同的内存。
  7. 下次刷新屏幕时,硬件会看到帧缓冲区中的新位,并以不同的方式绘制屏幕。
  8. 瞧!屏幕上有角色。

熊会跳舞真是太神奇了。

关于c++ - 深入了解事物是如何打印到屏幕上的(cout、printf)以及我似乎在教科书上找不到的真正复杂事物的起源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2542299/

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