sysvipc

SVIPC(7)                   Linux-Programmierhandbuch                  SVIPC(7)



BEZEICHNUNG
       sysvipc - System-V-Mechanismen für Interprozesskommunikation

ÃBERSICHT
       #include <sys/msg.h>
       #include <sys/sem.h>
       #include <sys/shm.h>

BESCHREIBUNG
       Diese Handbuchseite bezieht sich auf die Linux-Implementierung der
       System-V-Mechanismen für Interprozesskommunikation:
       Nachrichten-Warteschlangen (Message Queues), Semaphoren-Gruppen
       (Semaphore Sets) und gemeinsam genutzte Speichersegmente (Shared Memory
       Segments). Im Folgenden bedeutet das Wort Ressource eine konkrete
       Umsetzung eines dieser Mechanismen.

   Ressourcen-Zugriffsrechte
       Für jede Ressource verwaltet das System in einer allgemeinen Struktur
       des Typs struct ipc_perm die Informationen, die zur Bestimmung der
       Rechte für eine IPC-Aktion notwendig sind. Die Struktur ipc_perm
       enthält die folgenden Elemente:

           struct ipc_perm {
               uid_t          cuid;   /* Benutzerkennung des Urhebers */
               gid_t          cgid;   /* Gruppenkennung des Urhebers */
               uid_t          uid;    /* Benutzerkennung des Eigentümers */
               gid_t          gid;    /* Gruppenkennung des Eigentümers */
               unsigned short mode;   /* Lese- und Schreibrechte */
           };

       Die 9 niedrigstwertigen Bits des Elements mode der Struktur ipc_perm
       legen die Zugriffsrechte auf die Ressource für Prozesse fest, die
       einen IPC-Systemaufruf ausführen. Die Rechte werden wie folgt
       interpretiert:

           0400    Lesen durch Benutzer.
           0200    Schreiben durch Benutzer.
           0040    Lesen durch Gruppe.
           0020    Schreiben durch Gruppe.
           0004    Lesen durch Andere.
           0002    Schreiben durch Andere.

       Die Bits 0100, 0010 und 0001 (die Ausführungsbits) werden nicht vom
       System benutzt. Darüber hinaus bedeutet »schreiben« für
       Semaphoren-Gruppen tatsächlich »verändern«.

       Dieselbe System-Header-Datei definiert auch die folgenden symbolischen
       Konstanten:

       IPC_CREAT     Eintrag erzeugen, wenn Schlüssel nicht vorhanden.

       IPC_EXCL      Misserfolg, wenn Schlüssel vorhanden.

       IPC_NOWAIT    Fehler, wenn die Anforderung warten muss.

       IPC_PRIVATE   Geheimer Schlüssel.

       IPC_RMID      Ressource entfernen.

       IPC_SET       Optionen für Ressourcen setzen.

       IPC_STAT      Optionen für Ressourcen feststellen.

       Beachten Sie, dass IPC_PRIVATE vom Typ key_t ist. Alle anderen
       symbolischen Konstanten sind Felder von Schaltern (Flags), für die
       eine ODER-Verknüpfung mit einer int-Variablen möglich ist.

   Nachrichten-Warteschlangen (Message queues)
       Eine Nachrichten-Warteschlange wird eindeutig über ihre msqid (eine
       positive Ganzzahl) identifiziert und ist mit einer Datenstruktur des
       Typs struct msquid_ds verbunden. Die Struktur wird in <sys/msg.h>
       definiert und besteht aus den folgenden Elementen:

           struct msqid_ds {
               struct ipc_perm msg_perm;
               msgqnum_t       msg_qnum;    /* Anzahl der Nachrichten in */
                                            /* der Warteschlange */
               msglen_t        msg_qbytes;  /* maximale Nachrichtenlänge */
                                            /* für die Warteschlange */
               pid_t           msg_lspid;   /* PID des letzten Aufrufs von */
                                            /* msgsnd(2) */
               pid_t           msg_lrpid;   /* PID des letzten Aufrufs von */
                                            /* msgrcv(2)-Aufrufs */
               time_t          msg_stime;   /* Zeitpunkt des letzten
                                            /* msgsnd(2)-Aufrufs */
               time_t          msg_rtime;   /* Zeitpunkt des letzten
                                            /* msgrcv(2)-Aufrufs */
               time_t          msg_ctime;   /* Zeitpunkt der letzten */
                                            /* Ãnderung */
           };

       msg_perm   Die Struktur ipc_perm legt die Zugriffsrechte auf die
                  Nachrichtenwarteschlange fest.

       msg_qnum   Aktuelle Anzahl der Nachrichten in der Warteschlange.

       msg_qbytes GröÃte erlaubte Nachrichtenlänge in Byte für die
                  Nachrichtenwarteschlange.

       msg_lspid  Kennung des Prozesses, der als letzter msgsnd(2) aufgerufen
                  hat.

       msg_lrpid  Kennung des Prozesses, der als letzter msgrcv(2) aufgerufen
                  hat.

       msg_stime  Zeitpunkt des letzten Aufrufs von msgsnd(2)

       msg_rtime  Zeitpunkt des letzten Aufrufs von msgcv(2)

       msg_ctime  Zeitpunkt des letzten Systemaufrufs, bei dem ein Element von
                  msqid_ds geändert wurde.

   Semaphoren-Gruppen (Semaphore Sets)
       Eine Gruppe von Semaphoren wird eindeutig durch ihre semid (eine
       positive Ganzzahl) identifiziert und ist mit einer Datenstruktur des
       Typs struct semid_ds verbunden. Die Struktur wird in <sys/sem.h>
       definiert und enthält die folgenden Elemente:

                  struct semid_ds {
                      struct ipc_perm sem_perm;
                      time_t          sem_otime; /* Zeitpunkt des letzten Aufrufs */
                                                 /* von semop */
                      time_t          sem_ctime; /* Zeitpunkt des letzten Aufrufs */
                                                 /* von semctl */
                      unsigned long   sem_nsems; /* Anzahl der Semaphoren in der Gruppe */
                  };

       sem_perm   Die Struktur ipc_perm legt die Zugriffsrechte für die
                  Semaphoren-Gruppe fest.

       sem_otime  Zeitpunkt des letzten Aufrufs von semop(2)

       sem_ctime  Zeitpunkt des letzten Aufrufs von semctl(2), der einen
                  Eintrag der oben genannten Struktur oder einen zur Gruppe
                  gehörenden Semaphor geändert hat.

       sem_nsems  Anzahl der Semaphoren in der Gruppe. Jeder Semaphor der
                  Gruppe wird durch eine nicht negative Ganzzahl zwischen 0
                  und sem_nsems-1 repräsentiert.

       Ein Semaphor ist eine Datenstruktur des Typs struct sem mit folgenden
       Elementen:

           struct sem {
               int semval;  /* Wert des Semaphors */
               int sempid;  /* PID des Prozesses, der zuletzt veränderte */
           };

       semval     Wert des Semaphors: eine nicht negative Ganzzahl

       sempid     PID des letzten Prozesses, der den Wert dieses Semaphoren
                  veränderte.

   Gemeinsame Speichersegmente
       Ein gemeinsames Speichersegment wird eindeutig durch seine shmid (eine
       positive Ganzzahl) identifiziert und ist mit einer Datenstruktur des
       Typs struct shmid_ds verbunden. Die Struktur wird in <sys/shm.h>
       definiert und enthält die folgenden Elemente:

           struct shmid_ds {
               struct ipc_perm shm_perm;
               size_t          shm_segsz;   /* SegmentgröÃe */
               pid_t           shm_cpid;    /* PID des Erzeugers */
               pid_t           shm_lpid;    /* PID der letzten Aktion */
               shmatt_t        shm_nattch;  /* Anzahl der zugreifenden */
                                            /* Prozesse */
               time_t          shm_atime;   /* Zeitpunkt der letzten */
                                            /* Ankopplung */
               time_t          shm_dtime;   /* Zeitpunkt der letzten */
                                            /* Trennung */
               time_t          shm_ctime;   /* Zeitpunkt der letzten */
                                            /* Ãnderung */
           };

       shm_perm   Struktur des Typs ipc_perm für die Festlegung der
                  Zugriffsrechte auf das gemeinsame Speichersegment.

       shm_segsz  GröÃe des gemeinsamen Speichersegments in Byte.

       shm_cpid   Kennung des Prozesses, der das gemeinsame Speichersegment
                  eingerichtet hat.

       shm_lpid   Kennung des letzten Prozesses, der shmat(2) oder shmdt(2)
                  aufgerufen hat.

       shm_nattch Anzahl von aktiven Ankopplungen für dieses gemeinsame
                  Speichersegment.

       shm_atime  Zeitpunkt des letzten Aufrufs von shmat(2)

       shm_dtime  Zeitpunkt des letzten Aufrufs von shmdt(2)

       shm_ctime  Zeitpunkt des letzten Aufrufs von shmctl(2), der shmid_ds
                  verändert hat.

   IPC-Namensräume
       Für eine Diskussion der Interaktion von System-V-IPC-Objekten und
       IPC-Namensräumen lesen Sie ipc_namespaces(7).

SIEHE AUCH
       ipcmk(1), ipcrm(1), ipcs(1), lsipc(1), ipc(2), msgctl(2), msgget(2),
       msgrcv(2), msgsnd(2), semctl(2), semget(2), semop(2), shmat(2),
       shmctl(2), shmdt(2), shmget(2), ftok(3), ipc_namespaces(7)

KOLOPHON
       Diese Seite ist Teil der Veröffentlichung 5.03 des Projekts
       Linux-man-pages. Eine Beschreibung des Projekts, Informationen, wie
       Fehler gemeldet werden können sowie die aktuelle Version dieser Seite
       finden sich unter https://www.kernel.org/doc/man-pages/.


ÃBERSETZUNG
       Die deutsche Ãbersetzung dieser Handbuchseite wurde von Mike Fengler
       <mike@krt3.krt-soft.de> und Martin Eberhard Schauer
       <Martin.E.Schauer@gmx.de> erstellt.

       Diese Ãbersetzung ist Freie Dokumentation; lesen Sie die GNU General
       Public License Version 3 oder neuer bezüglich der Copyright-
       Bedingungen. Es wird KEINE HAFTUNG übernommen.

       Wenn Sie Fehler in der Ãbersetzung dieser Handbuchseite finden,
       schicken Sie bitte eine E-Mail an <debian-l10n-
       german@lists.debian.org>.



Linux                          10. Oktober 2019                       SVIPC(7)