Сегмент разделяемой памяти однозначно определяется положительным числом, называемым (идентификатором сегмента разделяемой памяти shmid). У каждого сегмента разделяемой памяти имеется структура данных struct shmid_ds, определенная в <sys/shm.h>, состоящая из следующих полей:
struct ipc_perm shm_perm;
{
int shm_segsz;/* размер сегмента */
ushort shm_cpid;/* идентификатор пользователя-создателя */
ushort shm_lpid;/* идентификатор процесса, последний раз работавшего с сегментом */
short shm_nattch;/* количество текущих подключений сегмента */
time_t shm_atime;/* время последнего подключения сегмента */
time_t shm_dtime;/* время последнего отключения сегмента */
time_t shm_ctime;/* время последнего изменения структуры */
}shm_perm;
- ipc_perm - это структура, определяющая права доступа к сегменту разделяемой памяти.
- shm_segsz - Размер сегмента разделяемой памяти в байтах.
- shm_cpid - Идентификатор процесса, создавшего сегмент разделяемой памяти.
- shm_lpid - Идентификатор процесса, последний раз вызывавшего функции shmat или shmdt.
- shm_nattch - Количество текущих подключений сегмента разделяемой памяти.
- shm_atime - Время последнего вызова функции shmat.
- shm_dtime - Время последнего вызова функции shmdt.
- shm_ctime - Время последнего вызова функции shmctl, изменившего одно из полей shmid_ds.