Shared Memory können Prozesse , die nicht mit den gleichen Adressraum teilen. Der Programmierer muss den Zugriff des freigegebenen Speicher zu synchronisieren , so dass ein Prozess nicht gestartet Lesen des Speichers , bevor ein anderer Vorgang abgeschlossen ist schriftlich an den Speicher . Semaphore Funktionen sind ähnlich wie Anrufe für gemeinsam genutzten Speicher funktionieren . Shared Memory Funktionen können verwendet werden, um zu erstellen , ermöglichen den Zugriff auf und lösen Sie gemeinsam genutzten Speicher werden. Anleitung
1
erstellen Shared Memory mit den folgenden Funktionsaufruf :
int shmget ( key_t key_name , size_t shmem_size , int shmemflag );
Include-Dateien sys /. shm.h , sys /types.h und sys /ipc.h
2
Befestigen Sie den gemeinsam genutzten Speicher zu einem Adressraum und ermöglichen den Zugriff auf sie mit folgendem Aufruf:
< p > void * shmaat (int shmem_id , const void * shmem_addr , int shmemflag );
3
Lösen Sie den gemeinsam genutzten Speicher aus dem Prozess mit dem folgenden Aufruf der Funktion :
int shmctl (int shmem_id , int cmd , struct shmemid_ds * buf) ; .
4
Definieren Sie die Struktur shmemid_ds mit mindestens drei Mitgliedern, darunter shmem_perm.uid , shmem_perm.gid und shmem_perm.mode