【发布时间】:2011-10-23 07:53:00
【问题描述】:
我正在尝试在命令行 shell 和我的应用程序之间创建一个管道。
这是我到目前为止的代码: http://pastebin.com/uupd4aXi
我要做的是将“whoami”写入标准输入并获得与该命令等效的返回。 如果我注释掉 writeinput 函数,readoutput 成功打印标准 cmd 打印输出。但是,如果我不这样做,writeinput 就会陷入无限循环:
for (;;)
{
bSuccess = WriteFile(hSTD_IN_WRITE, chBuf, sizeof(chBuf), &dwWritten, NULL);
if ( ! bSuccess ) break;
}
如果我删除 if 语句并手动导致循环中断,我仍然只会收到 cmd 打印输出消息,而不是对我的命令“whoami”的响应。
我做错了什么?
【问题讨论】: