【问题标题】:Linux console ; CLS not found error [closed]Linux 控制台; CLS 未找到错误 [关闭]
【发布时间】:2012-11-03 06:16:39
【问题描述】:

我正在尝试编译我在使用 windows 时编写的 C 项目。我正在尝试在 Linux(Ubuntu 12.04)中使用相同的 IDE(Code::Blocks)编译相同的项目。我的程序中使用了几个System("CLS") 函数。但是 linux 控制台说
sh: 1:CLS: not found
Segmentation fault (core dumped)

我包括了<stdlib.h><stdio.h>(当然还有几个)。

【问题讨论】:

  • 如果您希望您的代码具有可移植性,您不能调用任何特定系统上可能存在或不存在的任意系统命令。事实上,在您检查是否有屏幕之前,您不应该假设系统有屏幕。如果您正在与行式打印机或文本转语音引擎交谈,“CLS”会做什么?如果你的输出被重定向到一个文件会怎样?

标签: c console system ubuntu-12.04


【解决方案1】:

问题是 CLS 命令只存在于 Windows 上。对于 Linux,您需要的命令是:clear

无论如何,这只能部分解决问题:a) 如果您将程序移植到 Windows 机器上,您将遇到同样的问题,并且 b) 没有理由产生分段错误。

【讨论】:

  • 哇.. 称之为曼德拉效应,但我确信在我使用 cls // clr 之前几年我总是把它放在我的脑海里 dos etc 更冗长.. 甚至让我在这里以其他方式实现。谢谢?
【解决方案2】:

system 命令在您的本地系统上运行 shell 命令。 cls 是有效的 DOS/Windows 命令,但在 Linux 上不存在。 Linux 上的clear 命令提供了类似的功能。

分段错误表明您没有正确处理错误。

【讨论】:

    【解决方案3】:

    CLS 是一个旧的 MS-DOS 命令,不太可能在您的 Linux 机器上找到。您不应依赖生成另一个进程来为您清除控制台文本。您可以致电clearuse ANSI escape codes 为您完成工作。两者都不是便携式的,但都被广泛使用。

    【讨论】:

      猜你喜欢
      • 2016-08-16
      • 1970-01-01
      • 1970-01-01
      • 2014-08-15
      • 2018-01-21
      • 2014-10-01
      • 2016-08-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多