C++在Windows 我创建的cmd.exe的子进程,但是当我在读我的管道创建子进程
HANDLE parent = GetStdHandle(STD_OUTPUT_HANDLE);
char buffer[BUFSIZE];
DWORD read, written;
BOOL b = true;
for(;;)
{
b = ReadFile(g_hChildStd_OUT_Rd, buffer, BUFSIZE, &read, NULL);
if(! b || read == 0) break;
b = WriteFile(parent, buffer, read, &written, NULL);
if(! b) break;
}
它打印从CMD.EXE输出在我的控制台就卡住但它挂在这个循环中。 我只需要弄清楚为什么它不会破环
你检查什么B和阅读评估,以你读过的一切(虽然它的无限循环)后?做一点调试,你会找到你的答案。 – Pyrce 2012-08-10 18:46:37
添加更多相关的标签,也画主题利弊的关注。这不是严格的C++问题(所有这些看起来都像C一样) - 更多的是Windows API问题。 – metal 2012-08-10 18:48:06
它只是挂在ReadFile的,当管道是空 – birney 2012-08-10 18:49:16