Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ ftok(3C) — HP-UX 9.05

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

intro(2)

msgget(2)

semget(2)

shmget(2)

cdf(4)

stdipc(3C)

NAME

ftok() − standard interprocess communication package

SYNOPSIS

#include <sys/ipc.h>

key_t ftok(const char *path, int id);

DESCRIPTION

All interprocess communication facilities require the user to supply a key to be used by the msgget(), semget(), and shmget() system calls to obtain interprocess communication identifiers (see msgget(2), semget(2), and shmget(2)). One suggested method for forming a key is to use the ftok() routine described below.  Another way to compose keys is to include the project ID in the most significant byte, and 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 unintentionally 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 character that uniquely identifies a project.  Note that ftok() returns the same key for linked files when called with the same id and that it returns different keys when called with the same file name but different ids.

RETURN VALUE

ftok() returns (key_t) − 1 if path does not exist or if it is not accessible to the process. 

EXAMPLES

The following call to ftok() returns a key associated with the file myfile and id A:

key_t mykey;
      mykey = ftok ("myfile", ’A’);

WARNINGS

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, ftok() is likely to return a different key than it did the original time it was called. 

In an HP Clustered environment, ftok() can return a different key (using the same file name) when executed on different members of the cluster if any component of the file path name is a context-dependent file. 

SEE ALSO

intro(2), msgget(2), semget(2), shmget(2), cdf(4). 

Hewlett-Packard Company  —  HP-UX Release 9.0: August 1992

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026