Opérations:
int shmget(key_t cle,
int taille, int shmflg): Renvoie l'identificateur
de la mémoire partagée de clé externe unique
cle. Si la mémoire partagée n'existe pas
et si shmflg contient IPC_CREAT , shmget la
crée avec les droits d'accès définis dans
semflg . Cette fonction renvoie -1 si erreur.
exemple:
Num=shmget(1000, 12, 0666|IPC_CREAT); crée
une mémoire partagée de clé externe 1000 de taille
12 octets. Num est la clé interne.
char* shmat(int
shmid, char* shmaddr, int shmflg):
Attache la mémoire partagée shmid à
l'adresse shmaddr et renvoie un pointeur sur cette zone. Si shmaddr
est NULL le système cherche une adresse libre. shmflg
indique le type d'accès (lecture seule, lecture écriture (par
défaut)).
exemple:
int
*N = (int *) shmat(Num, NULL, 0);
Attache la zone de la mémoire partagée
Num à
un pointeur d'entier
N.
int shmctl(int shmid, int cmd,
struct shmid_ds* buf): Pour consulter, modifier
les caractéristiques ou détruire (IPC_RMID) une mémoire
partagée.
exemple:
semctl(Num, 0, IPC_RMID, 0);
détruit la mémoire
partagée de clé interne
num.
char* shmdt(char* shmaddr):
Détache la mémoire partagée du processus (mais
elle continue à exister). shmaddr est l'adresse rendue par
shmat.