shmat

Prototypes

char *shmat(int NumeroMemoirePartagee, char *AdresseDemandee, int Masque);

Description

Retrouve l'adresse de la mémoire partagée identifiée par NumeroMemoirePartagee.

Les autres paramètres sont inutiles.

Le résultat est l'adresse de la zone de 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

Bien s'assurer que NumeroMemoirePartagee est valide.

Si la zone de mémoire partagée ne peut être retrouvée, le résultat est NULL.

Voir aussi

shmget pour allouer une zone de mémoire partagée. 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.