Provided by: manpages-es_1.55-10_all bug

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'ON

       La funcion 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 deberia ser diferente cuando  los  ficheros
       (que  existen  simultaneamente)  o  los identificadores de proyecto son
       distintos.

VALOR DEVUELTO

       En caso de exito 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 tipico es proporcionar un caracter ASCII como
       valor proj_id, esto es por lo que se  dice  que  el  comportamiento  es
       indefinido cuando proj_id es cero.

       Por  supuesto  no  se  puede dar ninguna garantia de que el valor key_t
       resultante sea unico. Habitualmente, una mejor aproximacion combina  el
       byte  proj_id  dado,  los 16 bits de orden bajo del numero de i-nodo, y
       los 8 bits de orden bajo del  numero  de  dispositivo  para  formar  un
       resultado de 32 bits.  Pueden darse casos de colisiones facilmente, por
       ejemplo entre ficheros en /dev/hda1 y ficheros en /dev/sda1.

V'EASE TAMBI'EN

       ipc(5), msgget(2), semget(2), shmget(2), stat(2).