Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

ftok - Interprozesskommunikation

&pagelevel(4)&pagelevel

Definition

#include <sys/ipc.h>

key_t ftok(const char *path, int id);

Beschreibung

ftok() gibt einen Schlüssel zurück, der auf path und id basiert und der in nachfolgenden Systemaufrufen msgget(), semget() und shmget() verwendet werden kann. path muss der Pfadname einer bestehenden Datei sein, auf die der Prozess zugreifen kann. id ist ein Zeichen, das ein Projekt eindeutig kennzeichnet. ftok() gibt für alle Zeiger path, mit denen die gleiche Datei angesprochen wird, den gleichen Schlüssel zurück, wenn es mit der gleichen Kennung id aufgerufen wird. ftok() gibt verschiedene Schlüssel zurück, wenn verschiedene Kennungen id angegeben oder wenn über path verschiedene Dateien angesprochen werden, die gleichzeitig im selben Dateisystem stehen. In der Regel liefert ftok() nicht denselben Schlüssel zurück, wenn es erneut mit denselben Argumenten path und id aufgerufen wird, die damit bezeichnete Datei aber zwischenzeitlich gelöscht und dann mit demselben Namen neu angelegt wurde. Nur die 8 niederwertigen Bits von id werden verwendet. Wenn diese Bits null sind, ist das Verhalten von ftok() undefiniert.

Returnwert

Schlüssel vom Typ key_t

 


bei Erfolg.

 

(key_t) -1

bei Fehler. errno wird gesetzt, um den Fehler anzuzeigen.

Fehler

ftok() schlägt fehl, wenn gilt: 

 

EACCES

Sucherlaubnis existiert nicht für eine Komponente des Pfadpräfixes.

 

ELOOP

Zu viele symbolische Verweise traten bei der Übersetzung von path auf.

 

ENAMETOOLONG



Der Pfadname, auf den path zeigt, ist länger als {PATH_MAX}, oder die Länge einer Komponente des Pfadnamens überschreitet {NAME_MAX}; oder die Auflösung symbolischer Verweise im Pfadnamen führt zu einem Zwischenergebnis, dessen Länge {PATH_MAX} überschreitet.

 

ENOENT

Eine Komponente des Pfadnamens existiert nicht, oder path zeigt auf eine leere Zeichenkette.

 

ENOTDIR

Eine Komponente des Pfadpräfixes von path ist kein Verzeichnis.

Hinweis

Um maximale Portabilität zu erreichen, sollte die Kennung das niederwertigste Byte in id belegen. Die restlichen Bytes sollten auf 0 gesetzt sein. 

Siehe auch

msgget(), semget(), shmget(), sys/ipc.h.