介绍
很简单的库,直接看帮助文档:http://doc.qt.io/qt-5/qsharedmemory.html
主要函数:设置key,create向系统申请建立一个内存空间、attach当前进程与内存绑定、detach解除绑定,lock/unlock同步锁,data/constdata获取内存指针
创建者流程:setkey,create,attach,lock,data,操作data,unlock,不用的时候detach
访问者:setkey,attach,lock,data,操作data,unlock,不用的时候detach?? 不需要create了
- 作为创建者应该确定别人也不用了再解绑
- QSharedMemory析构是也会自动detach
- 一个内存空间如果0个attach时会被销毁,数据就没了
- 读写操作记着lock,注意不要忘了unlock
- 没有create的key,在调用attach时会返回false,注意这句在禁止程序多开有用
size获取共享内存大小,error/errorString是错误信息,isAttached判断当前进程是否已经绑定到内存。
范例
源码请见GitHub:QtCoreExamples
偷个懒,写到一起了:
#include <QCoreApplication>
#include <QSharedMemory>
#include <QDebug

本文介绍了使用Qt的QSharedMemory组件进行进程间通讯(IPC)的基本原理和操作步骤,包括创建者和访问者的操作流程,并展示了如何通过共享内存来禁止程序多开。此外,还提到了其他IPC方法如D-Bus、TCP/IP和QProcess。通过设置和检查共享内存,可以防止多个实例的运行。
最低0.47元/天 解锁文章
742

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



