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 *pathname, int proj_id); DESCRIPTION La fonction ftok() utilise l'identite du fichier indique par pathname (qui doit exister et etre accessible), et les huit bits de poids faible de proj_id (qui doit etre non nul) pour creer une cle IPC System V de type key_t, utilisable avec msgget(2), semget(2) ou 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 | +---------------------------------+--------------------------+---------+ STANDARDS POSIX.1-2008. HISTORIQUE POSIX.1-2001. NOTES Sur d'anciens systemes, le prototype etait : key_t ftok(char *pathname, 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.06 31 octobre 2023 ftok(3)