有名管道的使用

同linux 下一样 通过有名管道 实现非父子进程(资源继承)关系的 进程间通信(Inter Process Communicate)

无名管道是通过内核进行内存共享 , 而有名管道是通过文件系统进行的

核心代码

m_hPipe = CreateNamedPipe(lpPipeName, PIPE_ACCESS_DUPLEX | FILE_FLAG_OVERLAPPED, \PIPE_TYPE_BYTE | PIPE_READMODE_BYTE | PIPE_WAIT, 1, 0, 0, 1000, NULL);

API 用于创建一个有名管道 , 并且返回它的句柄

if (ReadFile(m_hPipe, buffer, sizeof(buffer), &ReadNum, NULL) == FALSE)

API 用于读取管道 , 放在线程中轮询吧

CSting m_cmd; // 这里比较重要的一点
WriteFile(m_hPipe, m_cmd.GetString(), m_cmd.GetAllocLength()*2, &writeNum, NULL);

API 用于写管道, 第二个,就是字符串指针, 第三个参数就是 写入字符数

这里有一点 很坑的事情, 由于管道是以字节为单位传递的数据 ,
然而 使用 unicode 之后, 一个字符是两个字节 , 所以这个写入字节数 需要设置为

 GetAllocLength() * 2

这样才能完整的把自己的书籍传递过去 , 否则的话,会数据不完整
而导致在管道中滞留,

Win Api 有名管道通信--扫雷辅助(四)相关推荐

  1. C++有名管道通信简单示例

    有名管道,简单的理解可以理解成,一个通过命名不同来实现通信的一种方式. 简单的有名管道实现逻辑如下: * 1. CreateNamedPipe 创建一个有名管道,在系统中 * 2.::ConnectN ...

  2. 双进程有名管道通信应用实例

    更多资料请点击:我的目录 本篇仅用于记录自己所学知识及应用,代码仍可优化,仅供参考,如果发现有错误的地方,尽管留言于我,谢谢. 要求: p1和p2两个进程通信,用有名管道实现 需要两个管道文件 第一个 ...

  3. 无名管道(PIPE)与 有名管道(FIFO)

    更多资料请点击:我的目录 本篇仅用于记录自己所学知识及应用,代码仍可优化,仅供参考,如果发现有错误的地方,尽管留言于我,谢谢. 无名管道(PIPE)部分: (1)无名管道的创建: 头文件: #incl ...

  4. linux进程通信中有名管道的特点,linux进程通信之(四):有名管道的读与写

    前面我们说了无名管道,下面我们来说说有名管道,请看下面一段代码: fifo_write.c: #include#include#include#include#include#include#incl ...

  5. 实验四:《操作系统》之管道通信

    Part4. 管道通信 往期回顾: Part0. 实验环境 Part1-1.熟悉UKylin环境 Part1-2.熟悉UKylin环境 Part2.进程控制 Part3.进程通信 一.实验目的 1.了 ...

  6. C#用WebBrowser与WIN API辅助模拟获取网站完整Cookie

    网上找到的可以完整获取Cookie的方法,转载一下希望能帮助更多人. 亲测可用 在Winform中使用WebBrowser控件获取网站的Cookie有时候是不完整的,默认调用Document.Cook ...

  7. 6.进程通信 无名管道 有名管道

    进程间通信(IPC,InterProcess Communication) 概念:就是进程和进程之间交换信息. 常用通信方式 无名管道(pipe) 有名管道 (fifo) 信号(signal) 共享内 ...

  8. Linux操作系统实验系列之实验四管道通信

    一.实验目的 1.了解什么是管道 2.熟悉UNIX/LINUX支持的管道通信方式 二.实验内容: 编写程序实现进程的管道通信.用系统调用pipe( )建立一管道,二个子进程P1和P2分别向管道各写一句 ...

  9. 【嵌入式总复习】Linux管道详解——管道通信、无名管道、有名管道、具体应用示例

    目录 管道 1. 管道通信 1.1 通信模式 1.2 管道通信中特殊的名词 2. 无名管道(PIPE) 2.1 无名管道的通信原理 2.2 无名管道特点 2.3 如何操作无名管道 示例1 示例2 3. ...

最新文章

  1. IBM推出实时跨境支付解决方案Blockchain World Wire
  2. border属性的CSS缩写顺序
  3. 001_Ajax简介
  4. 干货 | 广电行业数字化时代的「数据破局」指南
  5. php返回json的结果
  6. Ubuntu 配置 spark
  7. 窗口和元素的大小:offset client scroll
  8. PHP 与Memcache 分布式
  9. 3、AD使用技巧分享
  10. Use a production WSGI server instead(搭建web网站出现的问题)
  11. 神经网络的Dropout正则化
  12. python情感词典计算得分_利用情感词典计算调研纪要中的情感得分
  13. ARM:ARM体系结构与编程、ARM指令流水线、ARM编程模型基础
  14. 通俗理解贝叶斯,全概率定理
  15. 这是三篇影响百度17年的技术博客,作者李彦宏
  16. python需要什么样的电脑_学习Python需要配备什么样的电脑
  17. 使用for循环打印空心菱形图案
  18. javaScript解决浏览器兼容问题,判断浏览器是ie或者Chrome
  19. python词频统计GUI(thinter)
  20. Linux:内存泄漏检测工具--Valgrind

热门文章

  1. Java黑皮书课后题第10章:*10.17(平方数)找出大于Long.MAX_VALUE的前10个平方数。平方数是指形式为n^2的数
  2. vs编译应用程序不依赖运行vs环境
  3. js中父窗口获得模态窗口的返回值
  4. BZOJ 3907: 网格( 组合数 + 高精度 )
  5. pdf如何转换成word文档
  6. 3D Printer 开发进程一。 步进电机升降台设计图纸。
  7. php5.3开始出现的Function ereg() is deprecated Error问题解决办法
  8. 嗯?原来if可以调用方法的?
  9. java 是否继续操作?代码
  10. DPCM 压缩系统的实现和分析