構造体を共有メモリに配置することに関して、構造体の文字列の値は「薄い空気から消える」

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に変更しました。

元の記事を19件公開しました 賞賛されました0 アクセス416

おすすめ

転載: blog.csdn.net/weixin_42986599/article/details/105319521