#include <Windows.h>
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
SECURITY_ATTRIBUTES saPipe;
saPipe.nLength = sizeof(SECURITY_ATTRIBUTES);
saPipe.lpSecurityDescriptor = NULL;
saPipe.bInheritHandle = TRUE;
HANDLE hReadPipe, hWritePipe;
BOOL bSuccess = CreatePipe(&hReadPipe,
&hWritePipe,
&saPipe,
0);
if(!bSuccess)
return 0;
PROCESS_INFORMATION pi;
STARTUPINFO si;
memset(&si,0,sizeof(si));
si.hStdInput=hReadPipe;
si.hStdOutput=hWritePipe;
si.dwFlags=STARTF_USESTDHANDLES;
si.cb=sizeof(si);
TCHAR cmd_line[100] = {_T("cmd /c dir")};
if(CreateProcess(NULL,cmd_line,NULL,NULL,TRUE,0,NULL,NULL,&si,&pi))
{
CloseHandle(pi.hThread);
const int max = 500;
char buf[max] = {0};
DWORD dw;
while(ReadFile(hReadPipe,buf,max-1,&dw,NULL))
{
cout<<buf<<endl;
ZeroMemory(buf,max);
}
CloseHandle(pi.hProcess);
}
CloseHandle(hReadPipe);
CloseHandle(hWritePipe);
return 0;
}
匿名管道 获取控制台输出
最新推荐文章于 2022-12-05 00:10:43 发布