进程间通信——匿名管道

使用匿名管道做进程通信,需要用父进程创建一个子进程,该子进程的标准输入输出句柄由父进程指定。

无论父进程还是子进程,都可以收发数据,这里仅演示父进程发数据,子进程打印数据。
父进程循环从控制台读数据,并发送给子进程,子进程用对话框打印数据,约定子进程收到"quit"后退出。

父进程(发送端)

#define _CRT_SECURE_NO_WARNINGS
#include <Windows.h>
#include <stdio.h>

HANDLE g_hRead, g_hWrite;

BOOL CreateChildProcess()
{
   
	// 创建可继承的匿名管道,可以理解成输入输出设备	
	SECURITY_ATTRIBUTES sa;
	sa.bInheritHandle = TRUE;
	sa.lpSecurityDescriptor = NULL;
	sa.nLength = sizeof(SECURITY_ATTRIBUTES);
	if (!CreatePipe(&g_hRead, &g_hWrite, &sa, 0))
	{
   
		printf("创建匿名管道失败\n");
		return FALSE;
	}
	// 创建子进程,设置标准输入输出设备
	STARTUPINFO si;
	PROCESS_INFORMATION pi;
	
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值