pipe통신에 대하여 질문
글쓴이: christ17 / 작성시간: 화, 2016/08/23 - 1:42오후
안녕하세요
windows pipe 통신 질문입니다.
hWritePipe 에 buf에 담은 경로.exe 파일을 저장하여 써주고
buf = 0 초기화 해준 후,
ReadFile함수 호출해서 hReadPipe를 buf로 읽어 오는 예제입니다.
이렇게 하면 .exe 파일 실행 되어야 하는데요.
실행 되지 않고 buf에 아무런 값도 들어있지 않네요.
하기 pipe 예제 코드 입니다
int _tmain(int argc, _TCHAR* argv[]) { // pipe 사용을 위해 구조체 초기화 PROCESS_INFORMATION pi; STARTUPINFO sif; SECURITY_ATTRIBUTES sa; HANDLE hReadPipe, hWritePipe; // read,write 핸들 선언 char buf[5000] = ""; // buf 선언 및 초기화 DWORD reDword; ZeroMemory(&sa, sizeof(sa)); // sa 구조체 0 초기화 // pipe 사용을 위해 구조체 초기화 sa.nLength = sizeof(SECURITY_ATTRIBUTES); sa.lpSecurityDescriptor = NULL; sa.bInheritHandle = true; CreatePipe(&hReadPipe, &hWritePipe, &sa, 0); pipe 생성 memset(&sif, 0, sizeof(STARTUPINFO)); sif.cb = sizeof(STARTUPINFO); sif.dwFlags = STARTF_USESTDHANDLES | STARTF_USESHOWWINDOW; sif.wShowWindow= SW_HIDE; sif.hStdOutput = hWritePipe; sif.hStdError = hWritePipe; sprintf(buf, "E:/dsglProject/dbg_env/DBGMON/dbgmon.exe"); // buf에 담고 CreateProcess(NULL, (LPWSTR)buf, 0,0,TRUE, NORMAL_PRIORITY_CLASS|CREATE_NO_WINDOW,0,0,&sif,&pi); //process 생성 CloseHandle(hWritePipe); //write 핸들 닫음 memset(buf, 0, 5000); ReadFile(hReadPipe, buf, 5000, &reDword, 0); printf("%s", buf); system("pause"); return 0; }
File attachments:
첨부 | 파일 크기 |
---|---|
![]() | 9.76 KB |
Forums:
댓글 달기