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 .
|