HANDLE hOutputRead, hOutputWrite,hInputRead,hInputWrite;
    DWORD bytesRead;
        char *buffer=new char[1024];
    memset(buffer, 0, 1024);    SECURITY_ATTRIBUTES sa;    sa.nLength = sizeof(SECURITY_ATTRIBUTES);
    sa.lpSecurityDescriptor = NULL;
    sa.bInheritHandle = TRUE;
    if (!CreatePipe(&hOutputRead, &hOutputWrite, &sa, 0))
    {
        return;
    }    if (!CreatePipe(&hInputRead, &hInputWrite, &sa, 0))
    {
        return;
    }    STARTUPINFO si;
    PROCESS_INFORMATION pi;
    si.cb = sizeof(STARTUPINFO);
    GetStartupInfo(&si);
    si.hStdError = hOutputWrite;
    si.hStdOutput = hOutputWrite;
    si.hStdInput = hInputRead;
    si.wShowWindow = SW_HIDE;
    si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;
    if (!CreateProcess(NULL, "c:\\windows\\system32\\telnet.exe", NULL, NULL, TRUE, NULL, NULL, NULL, &si, &pi))
    {
        return;
    }      Sleep(200);
    while (true)
    {
        Sleep(1);
        memset(buffer, 0, 1024);
        bool bret = ReadFile(hOutputRead, buffer, 1024, &bytesRead, NULL);        if (bret)
        {
            if (bytesRead == 0)
                break;
//此处获取回显信息
...
                if (bytesRead < 1024)
                break;
        }
        else
        {
            DWORD i = GetLastError();
            break;
        }    }
代码如上,在ReadFiLe那里的时候,程序阻塞了,因为管道里没有数据但是我如果运行cmd.exe就可以读出管道内的数据请问为什么telnet就不行了呢?