记录一下在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,,,,,就这样解决了,我吐了