簡體   English   中英

訪問 IPC 共享內存上的特定元素

[英]Accessing a specific element on IPC shared memory

我正在閱讀有關共享內存的內容,並且在我的腦海中出現了一個問題 - 由於 shmget 的簽名是int shmget(key_t key, size_t size,int shmflg)那么我們可以通過傳遞30*sizeof(int)來分配例如 30 個整數的共享內存30*sizeof(int)作為 shmget 的參數,所以我的問題是我們可以訪問該共享內存的第 n 個元素嗎? (例如,我們可以訪問共享內存的第 4 個整數嗎?)

為什么不像使用普通指針那樣訪問它? 例如 :

int shmid = shmget(key, 30 * sizeof(int), 0644 | IPC_CREATE);
void* data = shmat(shmid, (void *)0, 0);
int element = *((int *)data + 3);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM