博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
匿名管道
阅读量:6901 次
发布时间:2019-06-27

本文共 1539 字,大约阅读时间需要 5 分钟。

这种匿名管道,和读写文件类似。最好是一个进程读,一个进程写,适合单向通信,不适于双向通信,双向通信容易导致的问题是有可能,读到自己进程刚才写的内容。

纯手工代码,没有一丝拷贝

父进程代码:

// PipeServer.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include 
#include
using namespace std;#define BUFF_SIZE 1024void Test(){ SECURITY_ATTRIBUTES sec_handle = {
0}; sec_handle.bInheritHandle = TRUE; sec_handle.lpSecurityDescriptor = NULL; sec_handle.nLength = sizeof(sec_handle); HANDLE hReadPipe = INVALID_HANDLE_VALUE; HANDLE hWritePipe = INVALID_HANDLE_VALUE; BOOL bCrtPipeOk = CreatePipe(&hReadPipe,&hWritePipe,&sec_handle,BUFF_SIZE); if(!bCrtPipeOk) return ; STARTUPINFO siStartInfo; ZeroMemory( &siStartInfo, sizeof(STARTUPINFO) ); siStartInfo.cb = sizeof(STARTUPINFO); PROCESS_INFORMATION piProcInfo; ZeroMemory( &piProcInfo, sizeof(PROCESS_INFORMATION) ); TCHAR szCommandLine[256] = {
0}; _stprintf_s(szCommandLine,_T("-hReadPipe %d -hWritePipe %d"),hReadPipe,hWritePipe); if(!::CreateProcess( _T("PipeClient.exe"), szCommandLine, NULL, NULL, TRUE, 0 | CREATE_NEW_CONSOLE, NULL, NULL, &siStartInfo, &piProcInfo)) { int nError = ::GetLastError(); cout<<"创建进程失败:"<
<

 

 

 

子进程  代码 

// PipeClient.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include 
#include
using namespace std;void Test(HANDLE hRead,HANDLE hWrite){ char szWrite[] = ("I'm Client!!"); DWORD dwWritten = 0; cout<<"client now Write...."<

 

转载地址:http://owpdl.baihongyu.com/

你可能感兴趣的文章
jquery内容补充
查看>>
mstsc 修改密码
查看>>
mvc的表单发送ajax请求,太强大了!!!!
查看>>
Oracle11g 密码延迟认证导致library cache lock的情况分析
查看>>
Oracle 手工清除回滚段的几种方法
查看>>
有声小说播音员
查看>>
备忘~~~~
查看>>
随币_super.霸气
查看>>
如何成为一名优秀的web前端工程师
查看>>
//读取配置文件(属性文件)的工具类-ConfigManager
查看>>
CenterFactory
查看>>
获取绑定变量语句中传入的值
查看>>
自已做的框架RJ 第六篇----------------异步篇
查看>>
【LeetCode】107 - Binary Tree Level Order Traversal II
查看>>
大叔也说Xamarin~Android篇~原生登陆与WebView的网站如何共享Session
查看>>
开发人员应该对IIS理论层的知识了解的多一些~第三讲 网页从IIS端到客户端浏览器经历的阶段...
查看>>
将不确定变为确定~老赵写的CodeTimer是代码性能测试的利器
查看>>
Android自定义文本的进度条
查看>>
How to call JavaScript Function in objective C
查看>>
Javascript刷新页面的几种方法
查看>>