Chinaunix首页 | 论坛 | 博客
  • 博客访问: 78157
  • 博文数量: 42
  • 博客积分: 687
  • 博客等级: 上士
  • 技术积分: 425
  • 用 户 组: 普通用户
  • 注册时间: 2007-08-01 15:39
文章分类

全部博文(42)

文章存档

2011年(12)

2010年(30)

分类:

2010-09-07 16:45:56

BOOL PipeTest()
{
    BOOL bret;
    SECURITY_ATTRIBUTES sa;
    HANDLE hReadPipe, hWritePipe;
    sa.nLength = sizeof(SECURITY_ATTRIBUTES);
    sa.lpSecurityDescriptor = NULL;
    sa.bInheritHandle = TRUE;
    bret = CreatePipe(&hReadPipe, &hWritePipe, &sa, 0);
    if (!bret)
    {
        return FALSE;
    }
    STARTUPINFO si;
    PROCESS_INFORMATION pi;
    si.cb = sizeof(STARTUPINFO);
    GetStartupInfo(&si);  // SecureZeroMemory(si, sizeof(si));
    si.hStdError   = hWritePipe;
    si.hStdOutput  = hWritePipe;
    si.wShowWindow = SW_HIDE;
    si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;
    bret = CreateProcess (NULL, /* command line */, NULL, NULL, TRUE, 0, NULL, NULL, &si, &pi );
    if (!bret)
    {
        return FALSE;
    }
    CloseHandle(pi.hProcess);
    CloseHandle(pi.hThread);
    CloseHandle(hWritePipe);
 char szBuffer[MAX_COMMAND_SIZE + 1];
    unsigned long count;
    bret = ReadFile(hReadPipe, szBuffer, MAX_COMMAND_SIZE, &count, 0);
    CloseHandle(hReadPipe);
    if (!bret)
    {
        return FALSE;
    }
   
    /*
     do something what you want!
    */
    return TRUE;
}
阅读(472) | 评论(0) | 转发(0) |
0

上一篇:异常7

下一篇:linux Pipe

给主人留下些什么吧!~~