[問題] Linux share memory存取權限問題
※ [本文轉錄自 C_and_CPP 看板]
作者: nagahara (Nagahara) 看板: C_and_CPP
標題: [問題] share memory存取權限問題
時間: Thu Oct 22 21:54:52 2009
有一個資料結構長這樣
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)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.192.107.210
推
10/24 16:53, , 1F
10/24 16:53, 1F
→
10/24 17:02, , 2F
10/24 17:02, 2F
→
10/25 01:15, , 3F
10/25 01:15, 3F
→
10/25 16:13, , 4F
10/25 16:13, 4F
→
10/25 16:16, , 5F
10/25 16:16, 5F
→
10/25 16:17, , 6F
10/25 16:17, 6F
→
10/27 01:49, , 7F
10/27 01:49, 7F