首页 > 其他 > 详细

映射文件实现进程通信

时间:2014-08-11 00:11:11      阅读:334      评论:0      收藏:0      [点我收藏+]

发送端

    //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是共享的内存,这个映射文件实现的。

映射文件实现进程通信,布布扣,bubuko.com

映射文件实现进程通信

原文:http://www.cnblogs.com/zzyoucan/p/3903589.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!