确定在运行时使用哪个shell的更好方法(Windows)?

时间:2017-04-14 12:37:58

标签: c++ windows runtime

我有一个清除终端屏幕的功能。它应该适用于Windows和任何基于* nix的操作系统。如果该功能检测到呼叫者的操作系统是Windows,它将检查呼叫者是否正在使用cmd.exe或其他内容(git-bashcygwin)。

有更好的方法吗?我不喜欢我需要依赖HOME变量的事实。

编译器:g++

#include <cstdlib>

void clearScreen() {
  #ifdef _WIN32
    if (std::getenv("HOME"))   // git-bash & cygwin home var is called HOME
        std::system("clear");  // cmd's home var is called HOMEPATH
    else
        std::system("cls");
  #else
    // Assume POSIX
    std::system("clear");
  #endif
}

注意:此功能已在cmd.exegit-bashWSL中经过测试。它尚未在Cygwin中进行过测试。

0 个答案:

没有答案