Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ shmctl(2) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

shmget(2)

shmop(2)

shm(5)

shmctl(2)                                                         shmctl(2)

NAME
     shmctl - Steuerfunktionen für Shared Memory

SYNTAX
     #include <sys/shm.h>

     int shmctl(int shmid, int cmd, struct shmidds *buf);

BESCHREIBUNG
     shmctl() stellt Steuerfunktionen für gemeinsam benutzte Speicherseg-
     mente (Shared Memory) zur Verfügung. Folgende mit cmd angegebene Steu-
     erfunktionen stehen zur Verfügung:

     IPCSTAT     Der aktuelle Wert jedes Elements der zu shmid gehörenden
                  Datenstruktur wird in die Struktur kopiert, auf die buf
                  zeigt. Der Inhalt dieser Struktur ist in sys/shm.h aufge-
                  führt.

     IPCSET      Die nachstehenden Elemente der zu shmid gehörenden Daten-
                  struktur werden auf die Werte der Struktur gesetzt, auf
                  die buf zeigt:

                  shmperm.uid
                  shmperm.gid
                  shmperm.mode   /* nur Zugangsberechtigungsbits */

                  Diese Funktion kann nur von einem Prozeß ausgeführt wer-
                  den, der eine effektive Benutzernummer hat, die gleich
                  der Nummer des Systemverwalters oder gleich dem Wert von
                  shmperm.cuid oder shmperm.uid in der zu shmid gehören-
                  den Datenstruktur ist.

     IPCRMID     Die durch shmid angegebene Shared-Memory-Kennung, das
                  Shared-Memory-Segment, sowie die zugehörige Datenstruktur
                  werden aus dem System entfernt. Diese Funktion kann nur
                  von einem Prozeß ausgeführt werden, der eine effektive
                  Benutzernummer hat, die gleich der Nummer des Systemver-
                  walters oder dem Wert von shmperm.cuid oder shmperm.uid
                  in der zu shmid gehörenden Datenstruktur ist.

     SHMLOCK     Das durch shmid angegebene Shared-Memory-Segment im Spei-
                  cher wird gesperrt. Diese Funktion kann nur von einem
                  Prozeß ausgeführt werden, der eine effektive Benutzernum-
                  mer hat, die gleich der Nummer des Systemverwalters ist.

     SHMUNLOCK   Das durch shmid angegebene Shared-Memory-Segment wird
                  freigegeben. Diese Funktion kann nur von einem Prozeß
                  ausgeführt werden, der eine effektive Benutzernummer hat,
                  die gleich der Nummer des Systemverwalters ist.






Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

shmctl(2)                                                         shmctl(2)

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

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

     EACCES       cmd ist gleich IPCSTAT, und der aufrufende Prozeß hat
                  keine Lese-Zugriffsberechtigung.

     EINVAL       shmid ist keine gültige Shared-Memory-Kennung.

     EINVAL       cmd ist keine gültige Steuerfunktion.

     EINVAL       cmd ist IPCSET, und shmperm.uid oder shmperm.gid sind
                  nicht gültig.

     EOVERFLOW    cmd ist IPCSTAT, wenn uid oder gid zu groß sind, um in
                  der Struktur gespeichert zu werden, auf die buf zeigt.

     EPERM        Bei IPCRMID oder IPCSET entspricht die effektive Benut-
                  zernummer des aufrufenden Prozesses nicht derjenigen des
                  Systemverwalters, oder sie entspricht nicht dem Wert von
                  shmperm.cuid oder shmperm.uid in der zu shmid gehören-
                  den Datenstruktur.

     EPERM        Bei SHMLOCK oder SHMUNLOCK entspricht die effektive
                  Benutzernummer des aufrufenden Prozesses nicht derjenigen
                  des Systemverwalters.

     EFAULT       buf verweist auf eine unzulässige Adresse.

     ENOMEM       cmd ist SHMLOCK, und es steht nicht ausreichend Speicher
                  zur Verfügung.

ERGEBNIS
     Nach erfolgreicher Beendigung wird 0 zurückgegeben. Andernfalls wird
     -1 zurückgegeben, 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 shmctl() verwenden, diese Funktion später leicht
     durch eine andere ersetzt werden kann.

SIEHE AUCH
     shmget(2), shmop(2), shm(5).



Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

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