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);
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).
CONFORMITÉ
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.23 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
Cette page de manuel a été traduite et mise à jour par Christophe
Blaess <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis par
Alain Portal <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et mise à
disposition sur http://manpagesfr.free.fr/.
Les mises à jour et corrections de la version présente dans Debian sont
directement gérées par Florentin Duneau <fduneau@gmail.com> et l’équipe
francophone de traduction de Debian.
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> ».