跨两个不同进程的 QSharedMemory
Posted
技术标签:
【中文标题】跨两个不同进程的 QSharedMemory【英文标题】:QSharedMemory across two different processes 【发布时间】:2013-01-28 15:39:30 【问题描述】:我想在两个不同的 Qt 应用程序之间共享一个变量。我正在考虑为此目的使用 QSharedMemory。我面临的问题是识别 Qt 应用程序中的共享内存区域。如何确保两个应用程序使用相同的共享内存?
【问题讨论】:
【参考方案1】:共享内存区域由一个键标识——一个传递给constructor的字符串参数,或者稍后使用setKey
设置。
您需要生成一个密钥并将其值传递给两个应用程序;使用它,它们都将访问相同的共享内存。
【讨论】:
使用纯 QString 是否可以达到目的? @saurabhsood91:字符串可以是任何你喜欢的字符串,只要 (a) 两个应用程序都被赋予相同的密钥,并且 (b) 它不会与任何其他应用程序使用的密钥冲突.【参考方案2】:除了 Mike Seymour 已经说过的 Qt 有很多示例代码(很可能也在您的系统上),所以您可以查看 example 和 documentation
【讨论】:
以上是关于跨两个不同进程的 QSharedMemory的主要内容,如果未能解决你的问题,请参考以下文章
带有 QSharedMemory 的 IPC 和如果进程之一挂起的风险
利用QSystemSemaphore和QSharedMemory实现进程间通讯