1

到目前为止,我只是在学习共享内存,我所学的一切都让我感到困惑。有人可以告诉我共享内存如何处理数组吗?还有两个子进程如何访问所述数组?

4

2 回答 2

0

共享内存区域只是虚拟内存中的一组连续字节,就像数组一样。所以如果你有一个指向某个共享内存的指针,你可以把它当作一个数组来对待,就像任何其他指针一样。

于 2013-05-02T06:36:43.587 回答
0

您可以使用 shmat() 方法访问共享内存,

shmat() 语法是

void *shmat(int shmid, const void *shmaddr, int shmflg);

这将返回一个指针。

如果要将其用作数组,则如下所示进行分配

datatype array[size];
datatype* array = (datatype*)shmat(shmid, NULL, 0);
于 2013-05-02T06:59:08.003 回答