Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

shmdt - gemeinsam nutzbaren Speicherbereich abhängen

&pagelevel(4)&pagelevel

Definition

#include <sys/shm.h>

int shmdt(const void*shmaddr);

Beschreibung

shmdt() hängt das gemeinsam nutzbare Speichersegment vom Datensegment des aufrufenden Prozesses ab, das sich an der durch shmaddr angegebenen Adresse befindet.

Einschränkung
Da in dieser Version des POSIX-Subsystems ein gemeinsam nutzbarer Speicherbereich nur existieren kann, wenn er an einen Prozess gebunden ist, weicht das Verhalten von shmdt() von XPG4 in folgendem Punkt ab:
Wenn sich der letzte Prozess von einem gemeinsam nutzbaren Speicherbereich abgehängt hat, wird dieser Speicherbereich freigegeben. Der POSIX-Kernel behält jedoch die Verwaltungsinformationen über diesen Speicherbereich. Hängt sich nun ein anderer Prozess wieder an das gemeinsam nutzbare Speichersegment an, ist dessen früherer Inhalt verloren. (Ende)

Returnwert

0

bei Erfolg. shmdt() dekrementiert den Wert von shm_attach in der Datenstruktur, die mit der Kennzahl des gemeinsam nutzbaren Speicherbereichs verbunden ist.

 

-1

bei Fehler. Das gemeinsam nutzbare Speichersegment wird nicht abgehängt. errno wird gesetzt, um den Fehler anzuzeigen.

Fehler

shmdt() schlägt fehl, wenn gilt:

 

EINVAL

Der Wert von shmaddr ist nicht die Datensegment-Startadresse eines gemeinsamen Speichersegments.

Siehe auch

exec, exit(), fork(), shmat(), shmctl(), shmget(), sys/shm.h, Abschnitt "Interprozesskommunikation“.