stdipc(S)
stdipc: ftok --
standard interprocess communication package
Synopsis
#include <sys/types.h>
#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(S),
semget(S),
and
shmget(S)
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 unintentionally interfere with
each other's operation.
It is still possible to interface intentionally.
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
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
ids.
Errors
ftok
returns
(key_t) -1
if path
does not exist
or if it is not accessible
to the process.
References
intro(S),
msgget(S),
semget(S),
shmget(S)
Notices
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 called.
© 2005 The SCO Group, Inc. All rights reserved.
SCO OpenServer Release 6.0.0 - 01 June 2005