[問題] share memory存取權限問題

看板C_and_CPP作者 (Nagahara)時間14年前 (2009/10/22 21:54), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
有一個資料結構長這樣 typedef struct{ int head; int tail; int element_size; void* array; }Queue; 假設process A create一塊share memory是sizeof(Queue)+ARRAY_SIZE 這塊空間用一個Queue的指標接收: Queue* queue = shmget(...); queue->array指到queue下面多create出來的那塊空間: queue->array = (char*)queue + sizeof(Queue); Process A存取Queue都沒問題, Process B用一個Queue*去get這塊空間之後,可以存取head tail element_size 但是要取array裡面的值時,卻得到亂碼,不然就會segment fault, 請問這是什麼原因呢? 要怎麼做才可以存取array的值呢? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.192.107.210 ※ 編輯: nagahara 來自: 123.192.107.210 (10/22 21:57) ※ nagahara:轉錄至看板 Linux 10/24 11:18
文章代碼(AID): #1Au6GlBE (C_and_CPP)