Windows の c++ 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 からの出力を出力しますが、このループでハングします。ループを壊さない理由を理解する必要があるだけです