ftok(3) Library Functions Manual ftok(3) NOM ftok - Convertir un nom de fichier et un identificateur de projet en cle IPC System V BIBLIOTHEQUE Bibliotheque C standard (libc, -lc) SYNOPSIS #include key_t ftok(const char *path, int proj_id); DESCRIPTION The ftok() function uses the identity of the file named by the given path (which must refer to an existing, accessible file) and the least significant 8 bits of proj_id (which must be nonzero) to generate a key_t type System V IPC key, suitable for use with msgget(2), semget(2), or shmget(2). La valeur resultante est la meme pour tous les chemins d'acces identifiant le meme fichier, en utilisant une valeur identique pour proj_id. La valeur devrait etre differente lorsque des fichiers differents (existants simultanement), ou des identificateurs de projet differents sont employes. VALEUR RENVOYEE En cas de succes, la cle generee key_t est renvoyee. Sinon elle renvoie -1, et errno indique l'erreur de la meme facon que l'appel systeme stat(2). ATTRIBUTS Pour une explication des termes utilises dans cette section, consulter attributes(7). +---------------------------------+--------------------------+---------+ |Interface | Attribut | Valeur | +---------------------------------+--------------------------+---------+ |ftok() | Securite des threads | MT-Safe | +---------------------------------+--------------------------+---------+ NORMES POSIX.1-2008. HISTORIQUE POSIX.1-2001. NOTES Sur d'anciens systemes, le prototype etait : key_t ftok(char *path, char proj_id); De nos jours proj_id est un int, mais seuls huit bits sont utilises. L'habitude veut que l'on utilise un caractere ASCII comme identifiant de proj_id, ce qui explique pourquoi le comportement est indefini lorsque proj_id vaut zero. Naturellement, aucune garantie ne peut etre donne sur le fait que la cle key_t resultante soit unique. En general, la meilleure methode est de combiner l'octet de proj_id, les seize bits de poids faible du numero d'inode, et les huit bits de poids faible du numero de peripherique 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 francaise de cette page de manuel a ete creee par Christophe Blaess , Stephan Rafin , Thierry Vignaud , Francois Micaux, Alain Portal , Jean-Philippe Guerard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas Francois , Florentin Duneau , Simon Paillard , Denis Barbier et David Prevot Cette traduction est une documentation libre ; veuillez vous reporter a la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITE LEGALE. Si vous decouvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message a . Pages du manuel de Linux 6.18 8 fevrier 2026 ftok(3)