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