qt IPC 之共享内存

实现IPC的方式有很多,今天我们来一起看下 共享内存QSharedMemory

       两个进程中的通讯,我们分为内存的申请者(服务端),和内存的访问者(客户端)

我们先来看服务端,简短的代码解释下:

 m_pSharememory = new QSharedMemory(this);
    m_pSharememory->setKey("sharememory");
    if(m_pSharememory->isAttached())//盘算是否连接到了共享内存块,如果是 就先分离
    {
        m_pSharememory->detach();
    }
    if(!m_pSharememory->create(256,QSharedMemory::ReadWrite))
    {
        qDebug()<<"ShareMemory creat failed";
        return;
    }

    m_pSharememory->lock();
    char *sm = static_cast<char *>(m_pSharememory->data());
    QByteArray buff = "hello shareMemory";
    memcpy(sm,buff.data(),static_cast<unsigned int>(buff.size()));
    m_pSharememory->unlock();
  1. 创建共享内存对象

  2. 设置识别key(sharememory)

  3. 申请内存,这个内存不属于创建的对象,应该归操作系统所有,由操作系统回收。

  4. 往内存里面写入一个默认

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值