关于在共享内存中放结构体,结构体里字符串的值“凭空消失”

记录一下在linux下用共享内存shm和多进程fork 做的客户端/服务器小作业

我在共享内存中放了这么一个结构体

struct buffer_area{
	char ID[MAXLINE];
	char MSG[MAXLINE];
};

其中

#define MAXLINE 8192

共享内存是这么创建的

shmid=shmget((key_t)MEM_KEY,sizeof(struct buffer_area*),IPC_CREAT|0666);

然后就有一个问题,就是我这个MSG它在一个进程中被赋值以后,在另一个进程里的值莫名其妙的就没了,我苦恼了很久,然后灵光一现,好像老天爷看不下去想要指点我一样,觉得可能是结构体里的数组开太大了,共享内存不够,然后我就把MAXLINE改为1024,,,,,就这样解决了,我吐了

发布了19 篇原创文章 · 获赞 0 · 访问量 416

猜你喜欢

转载自blog.csdn.net/weixin_42986599/article/details/105319521