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 shmctl
La 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 identifiers
Les 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.