OpenBSD manual page server

Manual Page Search Parameters

FTOK(3) Library Functions Manual FTOK(3)

ftokcreate IPC identifier from a pathname

#include <sys/ipc.h>

ftok(const char *path, int id);

The () function attempts to create a unique key suitable for use with the msgget(2), semget(2) and shmget(2) functions given the path of an existing file and a user-selectable id.

The specified path must refer to an existing file that is accessible to the calling process or the call will fail. Also, note that links to files will return the same key, given the same id. Only the 8 least significant bits of id are used in the key generation; the rest of the bits are ignored.

The ftok() function will return (key_t)-1 if path does not exist or if it cannot be accessed by the calling process.

msgget(2), semget(2), shmget(2)

The ftok() function originated with System V and is typically used by programs that use the System V IPC routines.

Thorsten Lockert <>

The returned key is computed based on the device and inode of the specified path in combination with the given id. Thus it is quite possible for the routine to return duplicate keys given that those fields are not 8- and 16-bit quantities like they were on System V based systems where this library routine's ancestors were originally created.

November 15, 2014 OpenBSD-6.4