semget(2) semget(2)
NAME
semget - Semaphor-Kennung bestimmen
SYNTAX
#include <sys/sem.h>
int semget(keyt key, int nsems, int semflg);
BESCHREIBUNG
semget() gibt die zu key gehörende Semaphor-Kennung zurück.
Eine Semaphor-Kennung und die zugehörige Datenstruktur sowie die Menge
mit nsems Semaphoren werden für key erstellt, wenn einer der nachste-
henden Punkte wahr ist:
- key ist gleich IPCPRIVATE.
- key wurde nicht bereits eine Semaphor-Kennung zugeordnet, und
(semflg&IPCCREAT) ist wahr.
Bei Erstellung wird die zur neuen Semaphor-Kennung gehörende Daten-
struktur wie folgt initialisiert:
- semperm.cuid, semperm.uid, semperm.cgid und semperm.gid werden
auf die effektive Benutzernummer bzw. die effektive Gruppennummer
des aufrufenden Prozesses gesetzt.
- Die Zugriffsberechtigungsbits von semperm.mode werden auf
Zugriffsberechtigungsbits von semflg gesetzt.
- semnsems wird auf den Wert von sems gesetzt.
- semotime wird auf 0 und semctime auf die aktuelle Zeit gesetzt.
semget() ist erfolglos, wenn einer oder mehrere der folgenden Punkte
zutreffen:
EINVAL sems ist entweder kleiner oder gleich Null oder größer als
der systembedingte Grenzwert.
EACCES Eine Semaphor-Kennung ist für key vorhanden, jedoch würde
die Zugriffserlaubnis, wie sie von den niederwertigen 9 Bits
von semflg angegeben ist, nicht erteilt werden.
EINVAL Eine Semaphor-Kennung ist für key vorhanden, jedoch ist die
Anzahl der Semaphoren in der zugeordneten Semaphor-Menge
kleiner als sems, und sems ist nicht gleich Null.
ENOENT Eine Semaphor-Kennung ist für key nicht vorhanden, und
(semflg&IPCCREAT) ist unwahr.
ENOSPC Eine Semaphor-Kennung soll erstellt werden, jedoch würde der
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
semget(2) semget(2)
systembedingte Grenzwert für die Höchstzahl zulässiger Sema-
phoren im Gesamtsystem überschritten werden.
EEXIST Eine Semaphor-Kennung ist für key vorhanden, jedoch sind
(semflg&IPCCREAT) und (semflg&IPCEXCL) wahr.
ERGEBNIS
Nach erfolgreicher Beendigung wird eine nichtnegative ganze Zahl, eine
Semaphor-Kennung, zurückgegeben. Andernfalls wird -1 zurückgegeben,
und errno wird zur Anzeige des Fehlers gesetzt.
HINWEISE
Es kann in Zukunft Änderungen bei den Schnittstellen für Interprozeß-
Kommunikation geben. Sie sollten daher Ihre Anwendungen so gestalten,
daß in Modulen, die semget() verwenden, diese Funktion später leicht
durch eine andere ersetzt werden kann.
SIEHE AUCH
semctl(2), semop(2), stdipc(3C).
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98