summaryrefslogtreecommitdiffstats
path: root/man3/ftok.3
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 19:40:15 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 19:40:15 +0000
commit399644e47874bff147afb19c89228901ac39340e (patch)
tree1c4c0b733f4c16b5783b41bebb19194a9ef62ad1 /man3/ftok.3
parentInitial commit. (diff)
downloadmanpages-399644e47874bff147afb19c89228901ac39340e.tar.xz
manpages-399644e47874bff147afb19c89228901ac39340e.zip
Adding upstream version 6.05.01.upstream/6.05.01
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'man3/ftok.3')
-rw-r--r--man3/ftok.3111
1 files changed, 111 insertions, 0 deletions
diff --git a/man3/ftok.3 b/man3/ftok.3
new file mode 100644
index 0000000..3b7d8ec
--- /dev/null
+++ b/man3/ftok.3
@@ -0,0 +1,111 @@
+'\" t
+.\" Copyright 1993 Giorgio Ciucci (giorgio@crcc.it)
+.\"
+.\" SPDX-License-Identifier: Linux-man-pages-copyleft
+.\"
+.\" Modified 2001-11-28, by Michael Kerrisk, <mtk.manpages@gmail.com>
+.\" Changed data type of proj_id; minor fixes
+.\" aeb: further fixes; added notes.
+.\"
+.TH ftok 3 2023-07-20 "Linux man-pages 6.05.01"
+.SH NAME
+ftok \- convert a pathname and a project identifier to a System V IPC key
+.SH LIBRARY
+Standard C library
+.RI ( libc ", " \-lc )
+.SH SYNOPSIS
+.nf
+.B #include <sys/ipc.h>
+.fi
+.PP
+.BI "key_t ftok(const char *" pathname ", int " proj_id );
+.SH DESCRIPTION
+The
+.BR ftok ()
+function uses the identity of the file named by the given
+.I pathname
+(which must refer to an existing, accessible file)
+and the least significant 8 bits of
+.I proj_id
+(which must be nonzero) to generate a
+.I key_t
+type System V IPC key, suitable for use with
+.BR msgget (2),
+.BR semget (2),
+or
+.BR shmget (2).
+.PP
+The resulting value is the same for all pathnames that
+name the same file, when the same value of
+.I proj_id
+is used.
+The value returned should be different when the
+(simultaneously existing) files or the project IDs differ.
+.SH RETURN VALUE
+On success, the generated
+.I key_t
+value is returned.
+On failure \-1 is returned, with
+.I errno
+indicating the error as for the
+.BR stat (2)
+system call.
+.SH ATTRIBUTES
+For an explanation of the terms used in this section, see
+.BR attributes (7).
+.TS
+allbox;
+lbx lb lb
+l l l.
+Interface Attribute Value
+T{
+.na
+.nh
+.BR ftok ()
+T} Thread safety MT-Safe
+.TE
+.sp 1
+.SH STANDARDS
+POSIX.1-2008.
+.SH HISTORY
+POSIX.1-2001.
+.SH NOTES
+On some ancient systems, the prototype was:
+.PP
+.in +4n
+.EX
+.BI "key_t ftok(char *" pathname ", char " proj_id );
+.EE
+.in
+.PP
+Today,
+.I proj_id
+is an
+.IR int ,
+but still only 8 bits are used.
+Typical usage has an ASCII character
+.IR proj_id ,
+that is why the behavior is said to be undefined when
+.I proj_id
+is zero.
+.PP
+Of course, no guarantee can be given that the resulting
+.I key_t
+is unique.
+Typically, a best-effort attempt combines the given
+.I proj_id
+byte, the lower 16 bits of the inode number, and the
+lower 8 bits of the device number into a 32-bit result.
+Collisions may easily happen, for example between files on
+.I /dev/hda1
+and files on
+.IR /dev/sda1 .
+.SH EXAMPLES
+See
+.BR semget (2).
+.SH SEE ALSO
+.BR msgget (2),
+.BR semget (2),
+.BR shmget (2),
+.BR stat (2),
+.BR sysvipc (7)