得到标准错误和标准输出为字符串ShellExecute函数
问题描述:
我想要得到的stderr
和stdout
从以做一些代码在某些stderr
和stdout
案件得到标准错误和标准输出为字符串ShellExecute函数
case WM_CREATE:
ShellExecute(0,
"open",
"cmd.exe",
"/C ipconfig > x",
0, SW_HIDE);
break;
说出来辩解在控制台命令为x串结果为x文件也我认为它不记录stderr,因为它使x文件空白,以反映adb命令
答
@CodyGray,谢谢你试图帮助,我发现解决方案是只添加“2> & 1 “这将会产生像这样的stderr和stdout
ShellExecute(0,
"open",
"cmd.exe",
"/C ipconfig > buffer.txt 2>&1",
0, SW_HIDE);
的解决方案比你所提到的情况只需要找出如何将其重定向到字符串
+1
好吧,如果真的那么简单,没有人会浪费时间编写所有代码。当然,'2>&1'魔术可以将stderr(文件描述符2)重定向到标准输出(文件描述符1),但是您不要过分简化问题。没有“只是”将它重定向到一个字符串。您必须自己将stdout句柄中的数据读取到字符串中。 –
+0
@CodyGray谢谢你是对的,我会尝试编码你提到的代码或读取文件 –
它需要一个公平一点更多的代码比你出什么更简单。 :-)请参阅此处的示例:[使用重定向的输入和输出创建子进程](https://msdn.microsoft.com/en-us/library/windows/desktop/ms682499.aspx) –
可能的重复[处理输出c Windows](http://*.com/questions/5486762/process-output-c-windows) –