Axel Rogat
Betriebssysteme und betriebssystemnahes Programmieren
 
9.1: FIFOs Kapitel 9 9.3: Message Queues 
 
  9.2 IPC-Mechanismen  
 

Es gibt wenig sinnvolle Synchronisations-Mechanismen, die in POSIX definiert sind (außer dem Record Locking, s.u.). System V definiert allerdings gleich drei davon, die sich im Lauf der Zeit über fast alle UNIX-Versionen (auch Linux) verbreitet haben:

Es wird jeweils ein Satz von Operationen zur Verfügung gestellt, der aber immer eine Funktion _get (Erfragen/Anlegen eines IPC-Objekts) und eine Funktion _ctl (IPC-Kontrolle) enthält, beispielsweise
int msgget(key_t key, int flg);
Ein IPC-Objekt (aller drei Typen) wird durch einen Schlüssel vom Typ key_t (aus sys/ipc.h) identifiziert. Die _get-Funktionen verhalten sich dabei alle wie folgt:

Falls key= IPC_PRIVATE:
es wird ein neues Objekt angelegt, und die Funktion gibt seine ID zurück.

Falls key!=IPC_PRIVATE:
Falls es ein IPC-Objekt des jeweiligen Typs mit dem Schlüssel key gibt, wird dessen ID zurückgegeben.
Ansonsten, falls das Bit IPC_CREAT in flg gesetzt ist, wird ein neues Objekt kreiert und dessen ID zurückgegeben.
Sonst wird mit Fehlerstatus abgebrochen.

Bemerkungen:

 
9.1: FIFOs Startseite 9.3: Message Queues