char *shmat(int NumeroMemoirePartagee, char *AdresseDemandee, int Masque);
Les autres paramètres sont inutiles.
Le résultat est l'adresse de la zone de mémoire partagée.
#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)
{
...
}
...
Si la zone de mémoire partagée ne peut être retrouvée, le résultat est NULL.