.\" Copyright 1993 Giorgio Ciucci (giorgio@crcc.it) .\" .\" Permission is granted to make and distribute verbatim copies of this .\" manual provided the copyright notice and this permission notice are .\" preserved on all copies. .\" .\" Permission is granted to copy and distribute modified versions of this .\" manual under the conditions for verbatim copying, provided that the .\" entire resulting derived work is distributed under the terms of a .\" permission notice identical to this one .\" .\" Since the Linux kernel and libraries are constantly changing, this .\" manual page may be incorrect or out-of-date. The author(s) assume no .\" responsibility for errors or omissions, or for damages resulting from .\" the use of the information contained herein. The author(s) may not .\" have taken the same level of care in the production of this manual, .\" which is licensed free of charge, as they might when working .\" professionally. .\" .\" Formatted or processed versions of this manual, if unaccompanied by .\" the source, must acknowledge the copyright and authors of this work. .\" Translated into Spanish Wed Jan 21 1998 by Gerardo Aburruzaga .\" García .\" Traducción revisada por Miguel Pérez Ibars el 2-marzo-2005 .\" .TH FTOK 3 "28 noviembre 2001" "Linux 2.4" "Manual del Programador de Linux" .SH NOMBRE ftok \- convierte un nombre de camino y un identificador de proyecto en una clave IPC de System V .SH SINOPSIS .nf .B # include .B # include .fi .sp .BI "key_t ftok ( char *" camino , .BI "int " proy " )" .SH DESCRIPCIÓN La función .B ftok utiliza la identidad del fichero que indica .I pathname (que debe referirse a un fichero existente y accesible) y los 8 bits menos significativos de .I proj_id (que debe ser distinto de cero) para generar una clave IPC de System V de tipo .B key_t , adecuada para el uso con .BR msgget (2), .BR semget (2), o .BR shmget (2). .LP El valor resultante es el mismo para todos los nombres de ruta que hacen referencia al mismo fichero, cuando se utiliza el mismo valor de .I proj_id. El valor devuelto debería ser diferente cuando los ficheros (que existen simultáneamente) o los identificadores de proyecto son distintos. .SH "VALOR DEVUELTO" En caso de éxito se devuelve la clave .B key_t generada. En caso de fallo se devuelve \-1, y la variable .I errno indica el error al igual que con la llamada al sistema .BR stat (2). .SH "CONFORME A" XPG4 .SH OBSERVACIONES Bajo libc4 y libc5 (y bajo SunOS 4.x) el prototipo era .RS .BI "key_t ftok(char *" pathname ", char " proj_id ); .RE En la actualidad .I proj_id es de tipo .BR int , pero se siguen utilizando solamente 8 bits. Un uso típico es proporcionar un carácter ASCII como valor .IR proj_id , ésto es por lo que se dice que el comportamiento es indefinido cuando .I proj_id es cero. .LP Por supuesto no se puede dar ninguna garantía de que el valor .B key_t resultante sea único. Habitualmente, una mejor aproximación combina el byte .I proj_id dado, los 16 bits de orden bajo del número de i\-nodo, y los 8 bits de orden bajo del número de dispositivo para formar un resultado de 32 bits. Pueden darse casos de colisiones fácilmente, por ejemplo entre ficheros en .I /dev/hda1 y ficheros en .IR /dev/sda1 . .SH "VÉASE TAMBIÉN" .BR ipc (5), .BR msgget (2), .BR semget (2), .BR shmget (2), .BR stat (2).