我正在创建一个 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/