Registre los trabajos pequeños de cliente / servidor con memoria compartida shm y fork multiproceso en Linux
Puse tal estructura en la memoria compartida
struct buffer_area{
char ID[MAXLINE];
char MSG[MAXLINE];
};
Donde
#define MAXLINE 8192
Así es como se crea la memoria compartida
shmid=shmget((key_t)MEM_KEY,sizeof(struct buffer_area*),IPC_CREAT|0666);
Entonces hay un problema, es decir, después de que mi MSG es asignado en un proceso, el valor en otro proceso se ha ido inexplicablemente. He estado angustiado por mucho tiempo, y luego hay un destello de luz, como si Dios no pudiera verlo y quisiera dar consejos. Al igual que yo, creo que puede ser que la matriz en la estructura sea demasiado grande y la memoria compartida no sea suficiente. Luego cambié MAXLINE a 1024 ,,,, y se resolvió así, vomité