实现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();
-
创建共享内存对象
-
设置识别key(sharememory)
-
申请内存,这个内存不属于创建的对象,应该归操作系统所有,由操作系统回收。
-
往内存里面写入一个默认


1312

被折叠的 条评论
为什么被折叠?



