shmget

Prototypes

int shmget(key_t IdentifiantMemoire, int Taille, int Masque);

Description

Alloue une zone de mémoire partagée le sémaphore identifiée par IdentifiantMemoire de taille Taille octets.

Soit il s'agit de :

Le résultat est le numéro de la mémoire partagée.

Exemple

#include <stdio.h>
#include <sys/shm.h>

int NumeroMemoirePartagee;
void *AdresseMemoirePartagee;

MemoirePartagee=shmget((key_t)12345, 1, 0666|IPC_CREAT|IPC_EXCL);
if (!MemoirePartagee)
...
AdresseMemoirePartagee=(void *)shmat(NumeroMemoirePartagee, NULL, 0);
if (!AdresseMemoirePartagee)
...
if (shmdt((char *)AdresseMemoirePartagee)==-1) if (shmctl(NumeroMemoirePartagee, IPC_RMID, NULL)==-1) ...

Avertissement

Si la zone de mémoire partagée ne peut être créée, le résultat est -1.

Voir aussi

shmat pour retrouver l'adresse d'une zone de mémoire partagée déjà existante. shmdt pour libérer l'adresse d'une zone de mémoire partagée déjà existante. shmctl pour supprimer une zone de mémoire partagée déjà existante.