NOM¶
ftok - Convertir un nom de fichier et un identificateur de projet en clé
IPC System V
SYNOPSIS¶
#include <sys/types.h>
#include <sys/ipc.h>
key_t ftok(const char *pathname, int
proj_id);
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_id (qui doit être non nul) pour créer
une clé IPC System 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_id. La valeur devrait être différente lorsque des
fichiers différents (existants simultanément), ou des
identificateurs de projet différents sont employés.
VALEUR RENVOYÉE¶
En cas de succès, la clé générée
key_t est
renvoyée. Sinon elle renvoie -1, et
errno indique l'erreur de la
même façon que l'appel système
stat(2).
POSIX.1-2001.
NOTES¶
Avec les bibliothèques libc4 et libc5 (et également sous
SunOS 4.x), le prototype était
key_t ftok(char *pathname,
char proj_id);
De nos jours
proj_id est un
int, mais seuls huit bits sont
utilisés. L'habitude veut que l'on utilise un caractère ASCII comme
identifiant de
proj_id, ce qui explique pourquoi le comportement est
indéfini lorsque
proj_id vaut zéro.
Naturellement, aucune garantie ne peut être donné sur le fait que la
clé
key_t résultante soit unique. En général, la
meilleure méthode est de combiner l'octet de
proj_id, les seize
bits de poids faibles du numéro d'inode, 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, par exemple entre
les fichiers se trouvant sur
/dev/hda1 et ceux sur
/dev/sda1.
VOIR AUSSI¶
msgget(2),
semget(2),
shmget(2),
stat(2),
svipc(7)
COLOPHON¶
Cette page fait partie de la publication 3.44 du projet
man-pages Linux.
Une description du projet et des instructions pour signaler des anomalies
peuvent être trouvées à l'adresse
<
http://www.kernel.org/doc/man-pages/>.
TRADUCTION¶
Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a
<
http://po4a.alioth.debian.org/> par l'équipe de traduction
francophone au sein du projet perkamon
<
http://perkamon.alioth.debian.org/>.
Christophe Blaess <
http://www.blaess.fr/christophe/> (1996-2003), Alain
Portal <
http://manpagesfr.free.fr/> (2003-2006). Florentin Duneau et
l'équipe francophone de traduction de Debian (2006-2009).
Veuillez signaler toute erreur de traduction en écrivant à
<debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
paquet
manpages-fr.
Vous pouvez toujours avoir accès à la version anglaise de ce document
en utilisant la commande «
man -L C
<section> <page_de_man> ».