У меня есть структура:
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 для синхронизации, и я не включил этот код. Я просто хотел убедиться, что я правильно получаю доступ к / изменяю общую память.)