Provided by: manpages-de_2.15-1build1_all bug

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   privater 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 (im Folgenden kurz Queue) 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 Queue */
               msglen_t        msg_qbytes;  /* maximale Nachrichtenlänge */
                                            /* für die Queue */
               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 Queue fest.

       msg_qnum   aktuelle Anzahl der Nachrichten in der Queue

       msg_qbytes größte erlaubte Nachrichtenlänge in Byte für die Queue

       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)
       Ein Gruppe von Semaphoren wird  eindeutig  durch  seine  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 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 dieser Semaphore 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  Prozessen  (Attaches),  die   derzeit   mit   diesem   gemeinsamen
                  Speichersegment arbeiten.

       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 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),
       namespaces(7)

KOLOPHON

       Diese Seite  ist  Teil  der  Veröffentlichung  5.02  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>.