Linuxで共有メモリshmとマルチプロセスフォークを使用して小さなクライアント/サーバージョブを記録する
そのような構造を共有メモリに入れました
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に変更しました。