最近我发现了一种清除我正在使用的编译器中的终端的方法,使用system("clear"),从外观上看它不需要任何额外的头文件。我想知道这个函数是否与众多流行的编译器兼容,并且它是否稳定(如果我在一个项目中多次使用它,是否会遇到问题)?另一种清除终端的方法是使用转义字符,但经过研究后发现这似乎不太可靠,因为它是特定于ANSI兼容终端的。我想知道system("clear")是否也有这种要求,因为我想确保我可以在我正在进行的项目中大量使用它。
system("clear")
x33g5p2x1#
我想知道这个函数是否与许多流行的编译器兼容编译器编译代码。system("clear") * 与编译器 * 兼容。如果我在一个项目中多次使用它,我会遇到问题吗?你会遇到完全相同的问题,当你使用它一次。我会期望它是“安全”使用多次,它只是清除终端。我想知道系统(“clear”)是否也有这样的要求system有多个要求:
system
system()
这些在任何微控制器上都是不正确的。shell需要有一个clear命令,这个命令必须存在。在小型操作系统或 * 任何 * 没有安装ncurses的Linux系统上都不是这样。最后,命令clear必须做正确的事情。这意味着您必须有一些兼容的终端,clear知道在这里通信的方法。这意味着多个层次-在Linux上,有一个whole database,它只包含在哪个终端上发送什么做什么。在Linux上,从ncurses clear查询整个数据库,根据$TERM环境变量查找终端配置,查找要发送的字符串以清除该终端的字符串,最后发送该字符串。在 * 任何 * 其他系统上,这可能 * 以任何方式 * 以不同方式工作。相反,如果您依赖于终端功能,请考虑在项目中只使用ncurses。
clear
$TERM
1条答案
按热度按时间x33g5p2x1#
我想知道这个函数是否与许多流行的编译器兼容
编译器编译代码。
system("clear")
* 与编译器 * 兼容。如果我在一个项目中多次使用它,我会遇到问题吗?
你会遇到完全相同的问题,当你使用它一次。我会期望它是“安全”使用多次,它只是清除终端。
我想知道系统(“clear”)是否也有这样的要求
system
有多个要求:system()
函数。这些在任何微控制器上都是不正确的。
shell需要有一个
clear
命令,这个命令必须存在。在小型操作系统或 * 任何 * 没有安装ncurses的Linux系统上都不是这样。最后,命令
clear
必须做正确的事情。这意味着您必须有一些兼容的终端,clear
知道在这里通信的方法。这意味着多个层次-在Linux上,有一个whole database,它只包含在哪个终端上发送什么做什么。在Linux上,从ncursesclear
查询整个数据库,根据$TERM
环境变量查找终端配置,查找要发送的字符串以清除该终端的字符串,最后发送该字符串。在 * 任何 * 其他系统上,这可能 * 以任何方式 * 以不同方式工作。相反,如果您依赖于终端功能,请考虑在项目中只使用ncurses。