C 为什么printf输出显示在命令提示符中?
我们都知道基本的Hello World计划:C 为什么printf输出显示在命令提示符中?,c,windows,terminal,C,Windows,Terminal,我们都知道基本的Hello World计划: #include <stdio.h> int main() { printf("Hello World!"); return 0; } #包括 int main(){ printf(“你好,世界!”); 返回0; } 这将打开一个命令提示符,并向我们显示“Hello,World”消息。 我的问题是:为什么?例如,为什么消息显示在命令提示符中而不是记事本中?为什么不作为Windows通知?为什么它是命令提
#include <stdio.h>
int main() {
printf("Hello World!");
return 0;
}
#包括
int main(){
printf(“你好,世界!”);
返回0;
}
这将打开一个命令提示符,并向我们显示“Hello,World”消息。我的问题是:为什么?例如,为什么消息显示在命令提示符中而不是记事本中?为什么不作为Windows通知?为什么它是命令提示符而不是其他东西?在当今世界,我认为这是一个很好的问题。原因是多方面的
音量增大
增大和音量减小
KB->kernel->GUI->kernel(处理卷)->GUI->kernel(在屏幕上显示新框架)->GUI->屏幕
通过简化IO:
像往常一样,我希望这会有所帮助,如果我错了,请告诉我 当您通过Windows的文件资源管理器“打开”文件时,系统(不一定是直接操作系统;涉及到各种子组件)会检查该文件。如果它是本机Windows应用程序,系统将直接执行它。如果它是另一种文件,系统将为它查找适当的应用程序。例如,如果它是Microsoft Word文件,系统将启动Microsoft Word并请求它打开该文件 如果文件是“命令行”程序,系统将启动Windows终端(或各种版本的Microsoft Windows中的类似程序),并请求运行该程序。更具体地说,它可能会启动Windows终端,请求运行特定的命令行shell并让该shell运行您的程序 C语言是在类似Unix的环境中发展起来的,在这种环境中,命令shell从物理键盘读取输入,并将输出写入物理显示器。在现代系统中,它们通常被在软件中执行相同功能的伪设备所取代。当shell启动命令行程序时,它将创建一个新进程,该进程的标准输入和标准输出流连接到提供键盘/显示功能的伪设备。(这是默认设置。您还可以请求shell启动程序,使输入和输出从/重定向到文件和其他设备。)
然后,当您的程序写入标准输出时,它将进入伪设备,伪设备将数据中继到系统的适当部分,使文本显示在终端窗口中。因为历史上C在终端之前就存在,那么终端是放置
stdout
文本的默认位置?把它放在其他地方需要就放在哪里达成一致,而在放在哪里的问题上没有明显的共识。stdout
指向终端,因此它将输出到终端。您可以使用类似的文件处理函数来输出到文件,但是printf
将输出到终端(或任何输出屏幕)。您错了。程序不会打开命令窗口。如果在运行程序时打开这样一个窗口,那是因为操作系统打开它是为了为程序的标准流提供一个终点。
KB -> kernel (store the volume level) +-> Speaker
|
+-> GUI -> screen