Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ shmget(2) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

shmctl(2)

shmop(2)

stdipc(3C)

shm(5)

shmget(2)                                                         shmget(2)

NAME
     shmget - Kennung für Shared Memory bestimmen

SYNTAX
     #include <sys/shm.h>

     int shmget(keyt key, sizet size, int shmflg);

BESCHREIBUNG
     shmget() gibt die Shared-Memory-Kennung zurück, die key zugeordnet
     ist.

     Eine Shared-Memory-Kennung und die zugehörige Datenstruktur sowie das
     Shared-Memory-Segment der Größe von wenigstens size Bytes werden für
     key erstellt, wenn einer der folgenden Punkte wahr ist:

     -  key entspricht IPCPRIVATE.

     -  key ist noch keine Shared-Memory-Kennung zugeordnet, und (shmflg &
        IPCCREAT) ist wahr.

     Bei der Erstellung wird die Datenstruktur, die der Shared-Memory-
     Kennung zugeordnet wird, wie folgt initialisiert:

     -  shmperm.cuid, shmperm.uid, shmperm.cgid, und shmperm.gid werden
        auf die effektive Benutzernummer bzw. die effektive Gruppennummer
        des aufrufenden Prozesses gesetzt.

     -  Die Zugriffsberechtigungsbits von shmperm.mode werden auf die
        Zugriffsberechtigungsbits von shmflg gesetzt. shmsegsz wird auf
        die Größe size gesetzt.

     -  shmlpid, shmnattch, shmatime und shmdtime werden auf 0 gesetzt.

     -  shmctime wird auf die aktuellen Zeit gesetzt.

FEHLER
     Die folgenden Beschreibungen der Fehlercodes sind funktionsspezifisch.
     Eine allgemeingültige Beschreibung finden Sie in introprm2(2) bzw. in
     errno(5).

     shmget() ist erfolglos, wenn einer oder mehrere der nachstehenden
     Punkte zutreffen:

     EINVAL    Die Größe size liegt unter dem systembedingten Minimum oder
               über dem systembedingten Maximum.

     EACCES    Eine Shared-Memory-Kennung ist für key vorhanden, jedoch
               wird die Zugriffserlaubnis, wie sie von den niederwertigen 9
               Bits von shmflg angegeben wird, nicht gewährt.





Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

shmget(2)                                                         shmget(2)

     EINVAL    Eine Shared-Memory-Kennung für key ist vorhanden, jedoch ist
               die Größe des zugehörigen Segments kleiner als size und size
               ist ungleich Null.

     ENOENT    Eine Shared-Memory-Kennung für key ist nicht vorhanden, und
               (shmflg & IPCCREAT) ist unwahr.

     ENOSPC    Eine Shared-Memory-Kennung soll erstellt werden, jedoch
               würde die systembedingte maximale Anzahl zugelassener
               Shared-Memory-Kennungen im gesamten System überschritten
               werden.

     ENOMEM    Eine Shared-Memory-Kennung und das zugehörige Speicherseg-
               ment sollen erstellt werden, jedoch steht zur Erfüllung der
               Anforderung kein ausreichender Speicherplatz zur Verfügung.

     EEXIST    Eine Shared-Memory-Kennung ist für key vorhanden, jedoch
               sind (shmflg & IPCCREAT) und (shmflg & IPCEXCL) wahr.

ERGEBNIS
     Nach erfolgreicher Beendigung wird eine nichtnegative ganze Zahl, eine
     Shared-Memory-Kennung, zurückgegeben. Andernfalls wird -1 zurückgege-
     ben, und errno wird zur Anzeige des Fehlers gesetzt.

HINWEISE
     Der Benutzer muß Shared-Memory-Segmente ausdrücklich entfernen, nach-
     dem der letzte Verweis auf diese entfernt worden ist.

     Es kann in Zukunft Änderungen bei den Schnittstellen für Interprozeß-
     Kommunikation geben. Sie sollten daher Ihre Anwendungen so gestalten,
     daß in Modulen, die shmget() verwenden, diese Funktion später leicht
     durch eine andere ersetzt werden kann.

SIEHE AUCH
     shmctl(2), shmop(2), stdipc(3C), shm(5).



















Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026