ftok
Table des matières
Retour à l'index
NOM
ftok - Convertir un nom de fichier et un identificateur de projet en clé IPC
System V
BIBLIOTHÈQUE
Bibliothèque C standard (libc, -lc)
SYNOPSIS
#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
Pour une explication des termes utilisés dans cette section, consulter
attributes(7).
| Interface | Attribut | Valeur
|
|
ftok()
| Sécurité des threads | MT-Safe
|
STANDARDS
POSIX.1-2008.
HISTORIQUE
POSIX.1-2001.
NOTES
Sur d'anciens systèmes, 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 faible du numéro
d'inode, et les huit bits de poids faible 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.
EXEMPLES
Consultez semget(2).
VOIR AUSSI
msgget(2), semget(2), shmget(2), stat(2), sysvipc(7)
TRADUCTION
La traduction française de cette page de manuel a été créée par
Christophe Blaess <https://www.blaess.fr/christophe/>,
Stéphan Rafin <stephan.rafin@laposte.net>,
Thierry Vignaud <tvignaud@mandriva.com>,
François Micaux,
Alain Portal <aportal@univ-montp2.fr>,
Jean-Philippe Guérard <fevrier@tigreraye.org>,
Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>,
Julien Cristau <jcristau@debian.org>,
Thomas Huriaux <thomas.huriaux@gmail.com>,
Nicolas François <nicolas.francois@centraliens.net>,
Florentin Duneau <fduneau@gmail.com>,
Simon Paillard <simon.paillard@resel.enst-bretagne.fr>,
Denis Barbier <barbier@debian.org>
et
David Prévot <david@tilapin.org>
Cette traduction est une documentation libre ; veuillez vous reporter à la
GNU General Public License version 3
concernant les conditions de copie et
de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel,
veuillez envoyer un message à
Index
- NOM
-
- BIBLIOTHÈQUE
-
- SYNOPSIS
-
- DESCRIPTION
-
- VALEUR RENVOYÉE
-
- ATTRIBUTS
-
- STANDARDS
-
- HISTORIQUE
-
- NOTES
-
- EXEMPLES
-
- VOIR AUSSI
-
- TRADUCTION
-
This document was created by
man2html,
using the manual pages.
Time: 05:06:14 GMT, September 19, 2025