在没有连接显示器的情况下调用 printf

在没有连接显示器的情况下调用 printf

我想知道当我们在printf没有连接显示器的情况下调用(并卸载与屏幕相关的任何驱动程序)时,是否会调用驱动程序?

答案1

你混淆了几件事。

所有 Unix 进程都有特殊的文件描述符,称为stdin(标准输入)、stdout(标准输出)和stderr(标准错误)。如果您调用printf(或类似的函数),您将在 上生成一个字节流stdout

操作系统对该字节流执行的操作完全取决于stdout描述符所连接的内容。您可以将其连接到一个文件(然后调用文件系统的所有操作系统层,如果文件系统由物理硬件支持,则包括“驱动程序”)。您可以将其连接到/dev/null,然后调用该设备的“驱动程序”(这将忽略它)。您可以将其传送到另一个进程。

这与您是否连接了显示器,或者是否安装了所有“与屏幕相关的驱动程序”无关。

因此,请阅读一些 Unix 和 Linux 基础知识、终端仿真器和终端设置;这将帮助您理解其中涉及的许多层面。

相关内容