shmdt

Prototypes

int shmdt(char *Adresse);

Description

Libère l'adresse Adresse de la zone 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 AdresseMemoirePartagee est valide.

Le résultat est -1 en cas d'erreur.

Voir aussi

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