對於一個項目,我必須做我必須使用:使用mmap()來映射爲多個進程共享內存區域
void *ptr = mmap(NULL, N, PROT_READ|PROT_WRITE, MAP_SHARED|MAP_ANONYMOUS, 0, 0);
其中N
是要求從RAM的字節數操作系統。
執行此語句時,ptr
指向什麼?它是否指向進程之間共享內存的開始?另外,如果在這個內存空間中說我想存儲1000 int
指針,我是否需要有N = 1000 * sizeof(int *);
?
並假設我是正確的,我可以在內存中存儲第二位的東西在哪裏?是否在ptr + 1
或ptr + 4
,因爲int *
在32位系統上是4個字節?
謝謝我欣賞它。
是的,是和'((INT *)PTR)[1]'(這等同於'*(((INT *)PTR)+ 1)') – 2014-10-04 22:10:23
您確定要'mmap()'一個標準的io流?我個人推薦'mmap(NULL,N,flags,flags,-1,0)'。 – EOF 2014-10-04 22:13:27
這是我的導師給我們用來映射共享進程之間的區域區域@EOF – user3268401 2014-10-04 22:19:14