FTOK(3) Library Functions Manual FTOK(3)
ftok - standard interprocess communication package
key_t ftok(path, id)
All interprocess communication facilities require the user to supply a
key to be used by the msgget(2), semget(2), and shmget(2) system calls
to obtain interprocess communication identifiers. One suggested method
for forming a key is to use the ftok() subroutine described below.
Another way to compose keys is to include the project ID in the most
significant byte and to use the remaining portion as a sequence number.
There are many other ways to form keys, but it is necessary for each
system to define standards for forming them. If some standard is not
adhered to, it will be possible for unrelated processes to unintention-
ally interfere with each other's operation. Therefore, it is strongly
suggested that the most significant byte of a key in some sense refer
to a project so that keys do not conflict across a given system.
ftok() returns a key based on path and ID that is usable in subsequent
msgget, semget, and shmget() system calls. path must be the path name
of an existing file that is accessible to the process. ID is a charac-
ter which uniquely identifies a project. Note: ftok() will return the
same key for linked files when called with the same ID and that it will
return different keys when called with the same file name but different
intro(2), msgget(2), semget(2), shmget(2)
ftok() returns (key_t) -1 if path does not exist or if it is not acces-
sible to the process.
If the file whose path is passed to ftok() is removed when keys still
refer to the file, future calls to ftok() with the same path and ID
will return an error. If the same file is recreated, then ftok() is
likely to return a different key than it did the original time it was
6 October 1987 FTOK(3)