已知程序名为exeName的控制台程序可以长期连续的运行(程序初始化然后等待连接)。为了检测该程序的异常,并在异常情况下能够重新启动该程序,我打算用管道对该程序的输出进行分析,可是我用如下的代码启动exeName控制台的情况下,exeName很快就结束了,不能够持续运行。也就是初始化结束,(初始化之后,没有连接,就没有任何输出)然后该控制台程序就结束了。当然不设置STARTF_USESTDHANDLES,也就是不定向到管道的情况下,它是能够持续运行的。   STARTUPINFO si;
   GetStartupInfo(&si);
    SECURITY_ATTRIBUTES sa={sizeof(sa),NULL,TRUE}; 
    HANDLE hReadPipe, hWritePipe;
     CreatePipe(&hReadPipe,&hWritePipe,&sa,0);//创建匿名管道 
      si.dwFlags=STARTF_USESHOWWINDOW|STARTF_USESTDHANDLES;//
                                      △△△△△△△△△△
      si.wShowWindow =SW_HIDE;
      si.hStdOutput =hWritePipe;//将hWritePipe作为标准输出句柄
      si.hStdError  =hWritePipe;//     fRet=CreateProcess(NULL,//
                 (LPTSTR)(LPCTSTR) exeName,//
                  NULL,
                  NULL,
                  TRUE,
                  NORMAL_PRIORITY_CLASS|CREATE_NEW_CONSOLE,                   NULL,
                  strPath,
                  &si,
                  &pi);
  CloseHandle(hWritePipe);
 
……