我是 C 编程的初学者。当我使用任何编译器在 Windows 中进行编程时,然后按住我使用的屏幕getch()
。
没有它,当我运行程序时,屏幕突然消失了。但是当我在 Linux 中做同样的事情时,就不需要getch()
. 当我运行我的程序时,它会运行并且屏幕不会消失。
为什么 Linux 中的屏幕(终端)不像 Windows 中那样关闭?
控制台窗口将被首先打开的任何东西关闭。
在 Windows 和 Linux 中,您都可以启动终端仿真器窗口并指定将在该窗口中运行的程序。当该程序终止时,窗口将关闭(除非您指定某些选项使其保持打开状态)。
Windows 软件开发通常通过 Visual Studio 等 IDE 完成。从 Windows 启动程序的常用方法是打开一个仅执行程序的终端窗口。程序完成时窗口关闭——因此需要getch()
或类似的东西。(请注意,该getch()
功能特定于 MS Windows。)
在 Unix/Linux 系统上,您通常从桌面管理器启动一个终端窗口,并且在窗口中运行的程序是一个交互式 shell。如果从 shell 运行命令,程序结束时窗口保持打开状态;它保持打开状态,直到 shell 终止(当您键入exit
或Ctrl-D在 shell 提示符下。
这两种方法都可以在任一系统上使用。在 Windows 上,您可以启动一个正在运行的控制台窗口cmd.exe
,它会为您提供C:\
提示;然后,您可以从该提示符运行命令,命令终止后窗口将保持打开状态。相反,在 Unix 或 Linux 上,您可以启动一个只运行一个命令的窗口,例如xterm -e ./my_program &
,该窗口将在程序完成时关闭。
不同之处在于 Windows 和 Windows 开发环境更加强调 GUI(图形)程序。对控制台程序(将输出写入 的程序stdout
)的支持几乎是事后才想到的(尽管对此类程序的支持要早得多)。但是控制台程序往往更容易编写,并且初级程序员更有可能开发它们。
另一方面,类 UNIX 系统仍然更加强调写入标准输出的程序(尽管也有大量的 GUI 程序)。