我想知道当我们在printf
没有连接显示器的情况下调用(并卸载与屏幕相关的任何驱动程序)时,是否会调用驱动程序?
答案1
你混淆了几件事。
所有 Unix 进程都有特殊的文件描述符,称为stdin
(标准输入)、stdout
(标准输出)和stderr
(标准错误)。如果您调用printf
(或类似的函数),您将在 上生成一个字节流stdout
。
操作系统对该字节流执行的操作完全取决于stdout
描述符所连接的内容。您可以将其连接到一个文件(然后调用文件系统的所有操作系统层,如果文件系统由物理硬件支持,则包括“驱动程序”)。您可以将其连接到/dev/null
,然后调用该设备的“驱动程序”(这将忽略它)。您可以将其传送到另一个进程。
这与您是否连接了显示器,或者是否安装了所有“与屏幕相关的驱动程序”无关。
因此,请阅读一些 Unix 和 Linux 基础知识、终端仿真器和终端设置;这将帮助您理解其中涉及的许多层面。