c共享内存中的结构
我有一个类似的结构
struct board{ char name; int values[37]; }board
想象一下这样一款游戏,其中有几个玩家在一张桌子上玩,并且他们都在数值arrays的不同位置做出不同的赌注。棋盘的名称是唯一的,玩家进入指定棋盘名称的游戏。 如果2个或更多玩家输入相同的棋盘名称,则他们都加入同一个游戏。
我需要将此结构放入共享内存并访问/修改“值”的内容
同时来自不同的进程(信号量不是问题)。 我设法将结构复制到一块共享内存中,但我不知道如何访问该名称以查看某个板是否已存在以及类似的内容。
这是一个学校项目,我有点绝望…. pleeease帮助和谢谢。 顺便说一下,我希望共享内存引用POSIX操作系统
POSIX共享内存函数已经考虑到这种类型的努力:
int shm_open(const char *name, int oflag, mode_t mode);
如果对*name
参数使用"/onica_game_
,则可以轻松指定要为共享游戏附加哪些共享内存段。 (顺便说一下,单个char
对游戏名称有点限制。你可能想要使用char name[32];
或者更大的东西,让人们有机会为他们的游戏命名更有意义的东西。)
我建议在名称前添加onica_game_
因为POSIX共享内存段的命名空间是系统范围的。