ftok

Autres langues

Langue: de

Version: 31. Dezember 1996 (openSuse - 09/10/07)

Section: 3 (Bibliothèques de fonctions)

BEZEICHNUNG

ftok - konvertiere einen Pfadnamen und einen Projektbezeichner in einen IPC-Schlüssel

ÜBERSICHT


# include <sys/types.h>

# include <sys/ipc.h>

key_t ftok ( char *pathname, char proj )

BESCHREIBUNG

Die Funktion ftok() wandelt den Pfadnamen einer existierenden und "anfassbaren" Datei zusammen mit einem Projektbezeichner in einen IPC-Systemschlüssel vom Typ key_t um.

RÜCKGABEWERT

Bei Erfolg wird der umgewandelte Wert vom Typ key_t zurückgegeben, ansonsten -1 und der Fehlerindikator errno wird wie beim stat(2) Systemaufruf gesetzt.

FEHLER

Der Algorithmus zur Berechnung des key_t-Wertes garantiert keinen eindeutigen Schlüssel. Zur Berechnung wird der stat()-Systemaufruf verwendet, um die Inode-Nummer der Datei sowie die Minor Device Nummer des beinhaltenden Dateisystems zu erhalten. Die unteren 16 Bit der Inode-Nummer wird nun verknüpft mit den 8 Bit des Projektbezeichners proj und den 8 Bit der Minor Device Nummer.
-
Zwei unterschiedliche Namen, die dieselbe Datei bezeichnen (Hardlink), ergeben gleiche Schlüssel.
-
Da die unteren 16 bit der Inode-Nummer verwendet werden, besteht die geringe Chance, den gleichen Schlüssel für Dateien zu erhalten, die auf unterschiedliche Inodes verweisen.
-
Da nicht zwischen Major Device Nummern unterschieden wird, besteht bei Systemen mit mehreren Festplattenkontrollern die geringe Gefahr einer Kollision.

SIEHE AUCH

ipc(5), msgget(2), semget(2), shmget(2), stat(2).