Fichier shm.h
Objectif
Décrit les structures utilisées par les sous-routines qui exécutent des opérations de mémoire partagée.
Syntaxe
#include < sys/shm.h >
Descriptif
Le fichier d'en-tête shm.h définit les constantes symboliques, les types et les structures suivants:
Types :
typedef unsigned short shmatt_t;Constantes symboliques:
SHMLBA segment low boundary address multiple
SHMLBA_EXTSHM SHMLBA value when environment variable EXTSHM=ON
SHM_RDONLY attach read-only (else read-write)
SHM_RND round attach address to SHMLBA
SHM_MAP map a file instead of share a segment
SHM_FMAP fast file map
SHM_COPY deferred update
SHM_R read permission
SHM_W write permission
SHM_DEST destroy segment when # attached = 0
ZERO_MEM for disclaim
SHMHISEG highest shared memory segment allowed
SHMLOSEG lowest shared memory segment allowed
NSHMSEGS number of shared memory segments allowed Il existe une structure de données d'ID de mémoire partagée pour chaque segment de mémoire partagée et de fichier mappé dans le système.
Structures
La structure shmid_ds contient les membres suivants:
struct ipc_perm shm_perm operation permission struct
size_t shm_segsz size of segment in bytes
pid_t shm_lpid process ID of last shared memory operation
pid_t shm_cpid pid of creator
shmatt_t shm_nattch number of current attaches
time_t shm_atime last shmat time
time_t shm_dtime time of last shmdt
time_t shm_ctime time of last change by shmctlLa structure shminfo contient les membres suivants:
unsigned int shmmax max shared memory segment size
int shmmin min shared memory segment size
int shmmni # of shared memory identifiersLes types pid_t, time_t, key_tet size_t sont définis comme décrit dans <sys/types.h>. Les éléments suivants sont déclarés en tant que fonctions:
void *shmat(int, const void *, int);
int shmctl(int, int, struct shmid_ds *);
int shmdt(const void *);
int shmget(key_t, size_t, int);En outre, tous les symboles de <sys/ipc.h> seront définis lorsque cet en-tête sera inclus.