gpt4 book ai didi

c - 具有共享内存和初始化的结构

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:49:08 27 4
gpt4 key购买 nike

正在关注 my previous帖子,我想向前迈出一步:

我想分配一个共享内存区域,并为分配的/共享的设置初始值数据:

static struct PipeShm  myPipeSt = {.init = 0 , .flag = FALSE , .mutex = NULL , .ptr1 = NULL , .ptr2 = NULL ,
.status1 = -10 , .status2 = -10 , .semaphoreFlag = FALSE };

int shmid = shmget(IPC_PRIVATE, sizeof(int), 0600);
static struct PipeShm * myPipe = shmat(shmid, NULL, 0); // &myPipeSt;

myPipe = & myPipeSt; // that doesn't compile

建议?

非常感谢!

最佳答案

首先,您只要求共享内存大小的整数,而不是整个结构。即使它四舍五入到最接近的页面大小,您也应该始终使用您要使用的结构的适当大小。

其次,要从一个结构复制到另一个结构,您只需分配即可。要复制到指向结构的指针,您必须使用取消引用运算符 *,例如:

*myPipe = myPipeSt;

关于c - 具有共享内存和初始化的结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11710078/

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