FTOK

Section: Manuel du programmeur Linux (3)
Updated: 21 juillet 2003
Index


NOM
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
CONFORMITÉ
NOTES
VOIR AUSSI
TRADUCTION

NOM

ftok - Convertir un nom de fichier et un identificateur de projet en clé IPC système V.

SYNOPSIS

#include <sys/types.h>
#include <sys/ipc.h>

key_t ftok (char * pathname, int proj);

DESCRIPTION

La fonction ftok utilise l'identité du fichier indiqué par pathname (qui doit exister et être accessible), et les huit bits de poids faible de proj (qui doit être non nul) pour créer une clé IPC Système V de type key_t, utilisable avec msgget(2), semget(2), ou shmget(2).
La valeur résultante est la même pour tous les chemins d'accès identifiant le même fichier, en utilisant une valeur identique pour proj. La valeur devrait être différente lorsque des fichiers différents (existants simultanément), ou des identificateur de projet différents sont employés.

VALEUR RENVOYÉE

Si elle réussit, la fonction ftok renvoie la valeur de type key_t créée, sinon elle renvoie -1, et errno contient un code d'erreur parmi ceux de l'appel-système stat(2).

CONFORMITÉ

XPG4

NOTES

Avec les bibliothèques libc4 et libc5 (et également sous SunOS 4.x), le prototype était
key_t ftok(char *pathname, char proj);
De nos jours proj est un int, mais seuls huit bits en sont utilisés. L'habitude veut qu'on utilise un caractère ASCII comme identifiant proj, ce qui explique pourquoi le comportement est indéfini lorsque proj vaut zéro.
Naturellement aucune garantie ne peut être donné que la clé key_t résultante soit unique. En général on combine l'octet proj, les seize bits de poids faibles du numéro d'i-noeud, et les huit bits de poids faibles du numéro de périphérique pour obtenir un entier sur 32 bits. Des collisions peuvent se produire facilement (car on n'utilise pas le numéro majeur de périphérique), par exemple entre les fichiers se trouvant sur /dev/hda1 et ceux sur /dev/sda1.

VOIR AUSSI

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

TRADUCTION

Christophe Blaess, 1996-2003.