c++ - C++ 中的命令处理器与控制台

标签 c++ console-application

我正在创建一个 C++ 控制台应用程序并想检查命令处理器是否可用:

if (!system(NULL))  //check to see if command processor is available
{
    fprintf(stderr, "Error: Command processor not available\n");
    exit(EXIT_FAILURE);
}

我的问题是,控制台应用程序可以在没有附加命令处理器的情况下存在或工作吗?如果在创建控制台时,它总是以某种方式与命令处理器配对,那么上面的代码将是多余的。 否则,会出现控制台窗口,程序会正常运行,但我就是无法使用system()。

最佳答案

如果您有一个控制台应用程序,那么您将从命令处理器内部运行您的程序。因此,命令处理器在您的程序上下文中可用。

可能有一些技巧可以从你的进程中“隐藏”所述处理器,但我不知道如何在任何操作系统上这样做。

但是,更一般地说,由于 C++ 是一种抽象的“多用途”语言,理论上可以想象,对于某些给定程序 P 在某些环境 E 中命令处理器不可用,但实际上我想不出一个例子。也许什么时候,比如说,编写内核模块?

总的来说,除非您已经有理由相信执行环境可能存在某些“异常”——您需要处理由您的“真实”系统 无论如何都会打电话。

仍然,不会受伤。

关于c++ - C++ 中的命令处理器与控制台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53848055/

相关文章:

c++ - 编译器给出 lambda 函数转换错误

c++ - 在生产代码中删除 dynamic_casts 是否安全?

php - 如何在 ./app/console 中获得像一位 Composer 那样的 Logo ?

c++ - 控制台游戏 map 的 Giant Char 或多个 Chars?

c# - 有什么办法可以在C#控制台应用程序中一次播放两种声音吗?

c++ - 如何初始化和填充 vector<vector<int>> 类型的 vector ?

c++ - fmod 返回不一致的值

c++ - 通过 FILE* 操作流

.net - NET Standard 与 Net Core App : when creating . NET Core 项目(使用控制台或类库)

c# - 如何以C#形式显示mysql表中的数据?