windows管道

本文详细介绍了Windows环境下使用命名管道进行进程间通信的方法。包括如何设置管道模式为字节模式及非阻塞模式,并讨论了不同模式下的优缺点。此外,还提供了创建命名管道实例的具体示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://blog.youkuaiyun.com/HelloDan/article/details/4789583



https://msdn.microsoft.com/en-us/library/windows/desktop/aa365603(v=vs.85).aspx



	DWORD dwMode=PIPE_READMODE_BYTE |PIPE_NOWAIT;  
 	BOOL bResult=SetNamedPipeHandleState(hPipe,&dwMode,NULL,NULL);  
 	if(!bResult)  
 	{  
 		dwError = GetLastError();
 // 		CString szDisplay;  
 // 		szDisplay.Format(_T("SetNamedPipeHandleState failed w/err 0x%08lx/n"),GetLastError());  
 		//MessageBox(szDisplay);
 		return ;  
 	}  


PIPE_NOWAIT 模式立即返回,容易出错,但是wait方式,但是读文件也阻塞,建议当时读的时候用非阻塞,写的时候用阻塞,并且大数据用阻塞,小数据用非阻塞。



// 创建管道实例
	HANDLE hPipe =  CreateNamedPipe (	lpszPipename, 
		PIPE_ACCESS_DUPLEX|FILE_FLAG_OVERLAPPED,	 //
		PIPE_TYPE_BYTE|PIPE_READMODE_BYTE|PIPE_WAIT, //message-read mode 
		1,		// blocking mode
		0,		// output buffer size 
		0,		// input buffer size 
		1000,	// client time-out 
		NULL );	// default security attributes 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值