如何清除命令行?

Tom*_*law 5 rust

是否有Rust等效system于C / C ++标准库中的函数?具体来说,我试图用来cls清除命令行。

oli*_*obk 5

您可以通过crate使用C 的system函数libc。但幸运的是,有一个更好的方法:std::process::Command.

一种快速而肮脏的调用cls方式是

if std::process::Command::new("cls").status().unwrap().success() {
    println!("screen successfully cleared");
}
Run Code Online (Sandbox Code Playgroud)

  • 小心!`cls` 只存在于 Windows 上。在 *nix 中,命令是 `clear`。通常,不建议为此使用系统命令。这需要做很多工作:找到命令、启动进程、绑定标准输出等。在这种情况下,我会尽量坚持使用 libc。 (16认同)
  • 它不是不安全的,并且使用 Rust 的 `Result` 类型来保证你检查它是否有效。即使你只是把程序带到 linux,至少你会失败。如果你想要一个在所有系统上运行的单行,你可以开始链接命令:`assert!(Command::new("cls").status().or_else(|_| Command::new("clear" )).unwrap().success())` (2认同)