zoukankan      html  css  js  c++  java
  • 映射文件实现进程通信

    发送端

        //1.在页面文件中创建一个可共享的文件句柄
        //2使用默认安全对象
        //3.可读,可写打开打开映射
        //4.最大长度的高32位
        //5.最大长度的低32位,此为size大小
        //6.指定文件映射对象的名字
        //return:新建文件映射对象的句柄,0表示出错
        HANDLE m_sh = CreateFileMappingA(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, 1000, "yingshe");
        if (!m_sh)
        {
            return 0;
        }
        //1.文件映射对象的句柄
        //2.权限
        //3.高32位,低32位,0:映射整个映像文件
        //return:文件映射在内存中的起始地址
        char* head = (char*)MapViewOfFile(m_sh, FILE_MAP_ALL_ACCESS, 0, 0, 0);
        *(int*)head = 90;

    接收端

        //1.权限:可读,可写
        //2.TRUE:表示可以由当前进程启动的新进程继承
        //3.文件映射对象的名称
        //return:文件映射对象的句柄,0表示出错
        HANDLE m_handle = OpenFileMappingA(FILE_MAP_ALL_ACCESS, TRUE, "yingshe");
        if (!m_handle)
        {
            return 0;
        }
        int* head = (int*)MapViewOfFile(m_handle, FILE_MAP_ALL_ACCESS, 0, 0, 0);
        std::cout << *head;

     通常用的是boost是共享的内存,这个映射文件实现的。

  • 相关阅读:
    PHP的后期静态绑定
    php的clone 浅拷贝
    python 从文件导入分类
    Yii2 主从 数据库
    什么是 jsonp ?
    为speedphp最新版添加 仿Yii 的简易版 数据验证 支持不同场景,自定义回调
    redis入门指南-安装redis
    composer -vvv
    依赖注入
    yii2-user
  • 原文地址:https://www.cnblogs.com/zzyoucan/p/3903589.html
Copyright © 2011-2022 走看看