Tag: 共享

c共享内存中的结构

我有一个类似的结构 struct board{ char name; int values[37]; }board 想象一下这样一款游戏,其中有几个玩家在一张桌子上玩,并且他们都在数值arrays的不同位置做出不同的赌注。棋盘的名称是唯一的,玩家进入指定棋盘名称的游戏。 如果2个或更多玩家输入相同的棋盘名称,则他们都加入同一个游戏。 我需要将此结构放入共享内存并访问/修改“值”的内容 同时来自不同的进程(信号量不是问题)。 我设法将结构复制到一块共享内存中,但我不知道如何访问该名称以查看某个板是否已存在以及类似的内容。 这是一个学校项目,我有点绝望…. pleeease帮助和谢谢。 顺便说一下,我希望共享内存引用POSIX操作系统

C – 共享内存 – 共享结构中的动态数组

我正在尝试分享这样的结构 例: typedef struct { int* a; int b; int c; } ex; 在进程之间,问题是当我使用malloc初始化’a’时,它变为私有的进程堆执行此操作(或者至少我认为这是发生的事情)。 有没有办法用这个有效的结构创建共享内存(使用shmget,shmat)? 编辑:我正在研究Linux。 编辑:我有一个初始化缓冲区的进程,如下所示: key_t key = ftok(“gr”, ‘p’); int mid = shmget(key, sizeof(ex), IPC_CREAT | 0666); ex* e = NULL; status b_status = init(&e, 8); //init gives initial values to bc and allocate space for ‘a’ with a malloc e = […]

如何使用共享内存在进程之间共享信号量

我必须将N个客户端进程与一个服务器同步。 这些进程由一个main函数分叉,我在其中声明了3个信号量。 我决定使用POSIX信号量,但我不知道如何在这些进程之间共享它们。 我认为共享内存应该正常工作,但我有一些问题: 如何在我的细分中分配正确的内存空间? 我可以在shmget size_t字段中使用sizeof(sem_t)来准确分配我需要的空间吗? 有没有人有类似这种情况的例子?