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).
ATTRIBUTS¶
Multithreading (voir pthreads(7))¶
La fonction
ftok() est sûre dans un contexte multithread.
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.65 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> ».