Available in

(3) (3)/de (3)/es (3)/fr (3)/ja (3)/ko (3)/pl (3)/pt

Contents

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

COMMENTS

blog comments powered by Disqus