到目前为止,我只是在学习共享内存,我所学的一切都让我感到困惑。有人可以告诉我共享内存如何处理数组吗?还有两个子进程如何访问所述数组?
问问题
1397 次
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 回答