Provided by: manpages-es_1.55-10_all
NOMBRE
ftok - convierte un nombre de camino y un identificador de proyecto en una clave IPC de System V
SINOPSIS
# include <sys/types.h> # include <sys/ipc.h> key_t ftok ( char *camino, int proy )
DESCRIPCIÓN
La función ftok utiliza la identidad del fichero que indica pathname (que debe referirse a un fichero existente y accesible) y los 8 bits menos significativos de proj_id (que debe ser distinto de cero) para generar una clave IPC de System V de tipo key_t , adecuada para el uso con msgget(2), semget(2), o shmget(2). 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 proj_id. El valor devuelto debería ser diferente cuando los ficheros (que existen simultáneamente) o los identificadores de proyecto son distintos.
VALOR DEVUELTO
En caso de éxito se devuelve la clave key_t generada. En caso de fallo se devuelve -1, y la variable errno indica el error al igual que con la llamada al sistema stat(2).
CONFORME A
XPG4
OBSERVACIONES
Bajo libc4 y libc5 (y bajo SunOS 4.x) el prototipo era key_t ftok(char *pathname, char proj_id); En la actualidad proj_id es de tipo int, pero se siguen utilizando solamente 8 bits. Un uso típico es proporcionar un carácter ASCII como valor proj_id, ésto es por lo que se dice que el comportamiento es indefinido cuando proj_id es cero. Por supuesto no se puede dar ninguna garantía de que el valor key_t resultante sea único. Habitualmente, una mejor aproximación combina el byte 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 /dev/hda1 y ficheros en /dev/sda1.
VÉASE TAMBIÉN
ipc(5), msgget(2), semget(2), shmget(2), stat(2).