Windows - 완전한 예를 찾고 있다면 C++ 익명 파이프는 상위 프로세스와 하위 프로세스 간에 데이터를 전송합니다!
黄舟
黄舟 2017-05-16 13:20:54
0
1
876

인터넷에서 파이프라인을 소개하는 기사를 많이 찾았지만 게시된 코드는 단편이거나 철자에도 오류가 가득합니다. 참고할 수 있도록 완전하고 간단한 예제를 작성할 수 있도록 마스터의 도움을 받으시기 바랍니다. 그것을 배우고 배우십시오.
내가 달성하고 싶은 효과: 주 프로그램은 하위 프로세스를 생성하고 다른 exe 프로그램을 실행합니다. 상위 프로세스는 익명 파이프를 통해 하위 프로세스에 바이트 배열을 전송하고 하위 프로세스는 처리할 데이터를 받습니다. 두 프로그램 모두 C++ 프로그램입니다. 창문에서 실행됩니다.

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

모든 응답 (1)
迷茫
#include  #include  int main() { auto numArgs = 0; CommandLineToArgvW(GetCommandLineW(), &numArgs); if (numArgs > 1) { std::cout << "我是子进程" << std::endl; CHAR szBuffer[16]{ 0 }; ReadFile(GetStdHandle(STD_INPUT_HANDLE), szBuffer, sizeof(szBuffer), nullptr, nullptr); std::cout << szBuffer << std::endl; } else { std::cout << "我是父进程" << std::endl; SECURITY_ATTRIBUTES sa{ 0 }; sa.nLength = sizeof(sa); sa.bInheritHandle = TRUE; HANDLE hRead; HANDLE hWrite; CreatePipe(&hRead, &hWrite, &sa, 0); STARTUPINFOW si{ 0 }; si.cb = sizeof(si); si.hStdInput = hRead; si.dwFlags = STARTF_USESTDHANDLES; PROCESS_INFORMATION pi{ 0 }; WCHAR szCommand[512]{ 0 }; GetModuleFileNameW(nullptr, szCommand, _countof(szCommand)); wcscat(szCommand, L" test"); CreateProcessW(nullptr, szCommand, nullptr, nullptr, TRUE, CREATE_NEW_CONSOLE, nullptr, nullptr, &si, &pi); WriteFile(hWrite, "hello", 5, nullptr, nullptr); } system("pause"); return 0; }

    최신 다운로드
    더>
    웹 효과
    웹사이트 소스 코드
    웹사이트 자료
    프론트엔드 템플릿
    회사 소개 부인 성명 Sitemap
    PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!