Memoria condivisa permette ai processi che non sono collegati a condividere lo stesso spazio indirizzo . Il programmatore ha bisogno di sincronizzare l'accesso della memoria condivisa in modo che un processo non inizia a leggere la memoria prima di un altro processo ha terminato la scrittura della memoria . Funzioni semaforo sono simili alle chiamate di funzione per la memoria condivisa . Funzioni di memoria condivisi possono essere usati per creare , abilitare l'accesso e staccare la memoria condivisa. Istruzioni
1
Creare memoria condivisa utilizzando la seguente chiamata di funzione :
int shmget ( key_t key_name , shmem_size size_t , int shmemflag ) ;
includere file sys /. shm.h , sys /types.h e sys /ipc.h
2
collegare la memoria condivisa di uno spazio di indirizzamento e permettono l'accesso ad essa con la seguente chiamata di funzione :
< p > void * shmaat (int shmem_id , const void * shmem_addr , int shmemflag ) ;
3
Staccare la memoria condivisa dal processo con la seguente chiamata di funzione :
int shmctl (int shmem_id , int cmd , struct shmemid_ds * buf ) .
4
definire la struttura shmemid_ds con almeno tre membri tra cui shmem_perm.uid , shmem_perm.gid e shmem_perm.mode