Dan*_*ana 10 c++ console system system-calls
我正在使用systemC++中的命令来调用一些外部程序,每当我使用它时,控制台窗口会在命令完成后打开和关闭.
如何避免打开控制台窗口?如果解决方案可以与平台无关,我会很高兴.我也希望我的程序等到命令完成.
这可能是最简单也许是最好的方法,这也可以使你的程序在运行此命令时不会冻结.首先不要忘记使用包含Windows标头;
#include <Windows.h>
Run Code Online (Sandbox Code Playgroud)
然后你需要使用以下函数来运行你的命令;
WinExec("your command", SW_HIDE);
Run Code Online (Sandbox Code Playgroud)
注意; 该WinExec方法已被弃用了十多年.它今天仍然可以正常工作.如果不需要,则不应使用此方法.
...而不是你的方式不希望使用;
system("your command");
Run Code Online (Sandbox Code Playgroud)
听起来你用的是windows。
在 Linux(以及一般的 *nix)上,我将分别system用对fork和 的调用替换对 的调用exec。在 Windows 上,我认为 Windows API 中有某种“生成新进程”函数——请参阅文档。
当您运行 shell 命令和/或外部程序时,您的程序很难独立于平台,因为它将取决于具有您正在运行的命令和/或外部程序的平台。