【发布时间】:2012-04-01 19:10:48
【问题描述】:
我有一个结构:
struct sdata {
int x;
int y;
time_t time;
};
我为结构创建共享内存如下:
size_t shmsize = sizeof(struct sdata);
shmid = shmget(IPC_PRIVATE, shmsize, IPC_CREAT | 0666);
然后我像这样访问共享内存:
struct sdata *data = shmat(shared.shmid, (void *) 0, 0);
data->time = time(NULL); // function returns the current time
我的问题很简单。这是访问/修改共享内存的正确方法吗?这是最好的方法吗?
(我正在使用 System V 信号量进行同步,我没有包含该代码。我只是想确保我正在正确访问/修改共享内存。)
【问题讨论】:
标签: c struct shared-memory