FTOK(3)

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