c++ - C++ 中的系统调用打开一个新终端。 window

标签 c++ system

<分区>

我正在尝试使用 c++ 中的系统命令。

std::string cmd = " DIR > d:\a.txt" ; 
int isystemOut2 = system (cmd.c_str());

当我运行它时,我看到 d:\a.txt 有正确的输出,但我看到命令提示符立即打开和关闭。有没有办法阻止打开新的命令提示符。

最佳答案

您可以使用 Windows API 函数。例如CreateProcess .

STARTUPINFOW si;
PROCESS_INFORMATION pi;

ZeroMemory(&si, sizeof(si));
si.cb = sizeof(si);
ZeroMemory(&pi, sizeof(pi));

if (CreateProcessW(cmd, arg, NULL, NULL, FALSE, CREATE_NO_WINDOW, NULL, NULL, &si, &pi))
{
    WaitForSingleObject(pi.hProcess, INFINITE);
    CloseHandle(pi.hProcess);
    CloseHandle(pi.hThread);
}

关于c++ - C++ 中的系统调用打开一个新终端。 window ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48317275/

相关文章:

r - 用R求解非平方线性系统

r - 将系统命令的输出存储到 r 中的变量中

用 C 语言进行 Cgi 编程,从我的 cgi 程序中调用 system()。

c++ - QGeoCodingManager 没有错误但没有结果

c++ - 如何循环程序在 C++ 中请求新的输入集?

c++ - 用于存储和访问结构指针的正确 Qt 数据结构

shell - 为什么从子进程通过 system() 或 execvp() 调用 cd shell 命令不起作用?

c++ - Rapidjson 根本不编码 utf8 序列

c++ - 无法编译 undefined reference libfirmataplus

java - 如何将系统性能值量化为单个性能值