共享内存如何与数组一起使用?

时间:2013-05-02 06:33:58

标签: c unix shared-memory

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

2 个答案:

答案 0 :(得分:1)

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

shmat()syntex是

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

这会返回一个指针。

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

datatype array[size];
datatype* array = (datatype*)shmat(shmid, NULL, 0);

答案 1 :(得分:0)

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