c++ - 如何确保一次只有一个进程访问共享内存

标签 c++ visual-c++ win32-process

我是 Win32 编程的新手。我想在两个进程之间创建共享内存。我已经使用内存映射功能创建了共享内存。

我的结构看起来是这样的:

struct sharedMemory
{
  int ans1;
  int ans2;
  BOOLEAN flag1;
};

现在我可以从不同的进程访问这个共享内存,但我对如何将锁应用到这个共享内存感到困惑,以便只有 1 个进程能够访问结构成员变量。

最佳答案

通过在调用 CreateMutex 时提供互斥锁名称,您将使互斥体对其他进程可见。

如果另一个进程将相同的名称传递给 CreateMutex,它将获得现有的互斥量(而不是创建一个新的互斥量),然后可以将其用于进程间同步。

关于c++ - 如何确保一次只有一个进程访问共享内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12698731/

相关文章:

c++ - 程序 VC++ Win32 应用程序出错?

c++ - 为什么 RemoveDirectory 函数不删除最顶层的文件夹?

c# - 在 Windows x64 中从句柄获取可执行文件名

c++ - 开发一个应用程序以重启另一个应用程序

C++ 8乘8板

visual-c++ - 为什么只需要 1 个深度/模板缓冲区,即使交换链是三重缓冲的 DirectX 12

c++ - 结构继承会导致静态初始化时出现非聚合类型错误

C++ 将数据字节解析为结构

c++ - 无法使用复印功能

如果我在 main() 函数之后放置一个类,C++ 将编写什么代码