我使用_popen启动进程来运行命令并收集输出
这是我的c ++代码:
bool exec(string &cmd, string &result)
{
result = "";
FILE* pipe = _popen(cmd.c_str(), "rt");
if (!pipe)
return(false);
char buffer[128];
while(!feof(pipe))
{
if(fgets(buffer, 128, pipe) != NULL)
result += buffer;
}
_pclose(pipe);
return(true);
}
Run Code Online (Sandbox Code Playgroud)
有没有办法在没有控制台窗口打开的情况下这样做(就像目前在_popen语句中那样)?
据我所知,你不能1:你正在启动一个控制台应用程序(cmd.exe,它将运行指定的命令),并且Windows在启动控制台应用程序时总是创建一个控制台窗口。
CreateProcess
。问题是,_popen
不要传递这些标志,因此您必须使用 Win32 API 而不是_popen
创建管道。 归档时间: |
|
查看次数: |
8056 次 |
最近记录: |