[英]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.