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

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

我对 Win32 编程还很陌生。我想在两个进程之间创建一个共享内存。我已经使用内存映射功能创建了共享内存。

我的结构看起来像这样:

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

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

最佳答案

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

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

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

相关文章:

c++ - QtabBar 文本和图标

c++ - Visual Studio 2013 msvcr120 到 msvcr100

c++ - 处理器类型的运行时检测-原子操作

C++, C2447 '{' : missing function header (old-style format list?), win32 和 long

java - jinterop Win32_Process 创建

c++ - std::map\std::set包含重复的键

c++ - C++/是否允许更改静态数组的大小?

c++ - 为什么 "extern template"不能与 shared_ptr 一起使用?

c++ - Visual C++ - 匿名方法

go - 如何管理使用 Win32 API(记事本、Word、Outlook、Chrome 等)打开的应用程序窗口