C++ - 进程之间共享的互斥体
C++ - Mutex Shared Between Processes
我正在尝试创建一个由服务器和几个尝试相互通信的客户端组成的系统。客户端将数据放入共享内存(使用 ftok/shmget 创建),然后能够将数据写入此内存。这些由2个单独的程序组成。
服务器读取客户端写入共享内存的值,并将其写入文件。我可以让客户端将数据写入共享内存,让服务器读取数据,但我在锁定共享内存时遇到问题,因此多个客户端不会同时写入。
我尝试创建信号量(使用 sem_open),但这在进程之间不共享。如何在进程(或互斥锁,因为它们可能会更好地工作)之间共享信号量?
要使用命名信号量或互斥锁:
int permissions = 0644;
sem_t *shared_sem;
unsigned int inital_value = 1;
shared_sem = sem_open("SharedSem", O_CREAT, permissions, inital_value);
此外,请确保正确设置权限。
使用"命名"信号量...例如,两个进程都使用的"/someuniquename"。
相关文章:
- 是否可以通过C++扩展强制多个python进程共享同一内存
- Directx 12 :在两个进程之间共享图形内存
- 子进程更新共享 mmap 内存,但父进程没有更改
- 如何在进程之间共享大量数据而不重复?(国际刑罚委员会)
- 提升进程间共享内存open_or_create每次都会引发异常
- 提升进程间共享内存删除、权限和输出文件
- 加速进程间:管理共享内存错误
- 使用互斥锁和条件变量增强跨内存的进程间共享向量
- std::unordered_map 在共享内存中使用 boost:::进程间分配器 - 缺点?
- 如何将我的 cli 信息(变量等)共享到子进程,这是一个 bash shell 脚本
- 提升进程间:在循环中分配共享内存
- 当多个进程使用该段时,Posix 共享内存使用 mremap 调整大小
- 在不违反严格的别名规则的情况下访问进程间共享内存中的对象
- 当一个进程截断 Boost 进程间库创建的共享内存时,进程需要重新映射
- 两个进程之间的共享映射内存在编辑时未更新
- 使用boost进程间库的phpexec共享内存和Cloudfoundry容器问题
- boost::OSX 上 32 位和 64 位程序之间共享内存中的进程间同步机制(互斥体、条件)
- C++ - 分叉进程无法从共享内存读取
- 服务和用户模式进程之间的共享全局事件不起作用
- 在资源有限的不同进程之间建立共享内存