-1

我了解如何通过使用分配“一大块”内存

int shmget(IPC_PRIVATE, int size, IPC_CREAT | 0666)

但是,如何将这一内存区域分解为多个区域?例如,

[          heap           ]
[region1][region2][region3]

然后,我相信在我必须使用的每个分叉进程中

int shmget(key_t shmid, 0, 0666)

访问我猜的区域?

我还在很多与内存分配相关的在线网站上看到“偏移”一词……这是什么意思?

4

1 回答 1

0

在现代 linux 系统上,没有太多理由使用shmget& Co。shm_open与 , 一起使用mmap。该界面更易于使用。

我不明白您是否想自愿划分地图,或者这只是您所读内容的结果shmget。但是mmap,如果您愿意,您可以轻松地绘制该地区的部分地图。

于 2012-04-13T16:32:32.573 回答