gpt4 book ai didi

C++ - 进程间共享的互斥量

转载 作者:行者123 更新时间:2023-11-28 00:53:35 25 4
gpt4 key购买 nike

我正在尝试创建一个系统,该系统由一个服务器和多个试图相互通信的客户端组成。客户端将数据放入共享内存(使用 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);

此外,请确保您正确设置了权限。

关于C++ - 进程间共享的互斥量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12700889/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com