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