summaryrefslogtreecommitdiffstats
path: root/man3p/ftok.3p
diff options
context:
space:
mode:
Diffstat (limited to 'man3p/ftok.3p')
-rw-r--r--man3p/ftok.3p140
1 files changed, 140 insertions, 0 deletions
diff --git a/man3p/ftok.3p b/man3p/ftok.3p
new file mode 100644
index 000000000..f30c04991
--- /dev/null
+++ b/man3p/ftok.3p
@@ -0,0 +1,140 @@
+.\" Copyright (c) 2001-2003 The Open Group, All Rights Reserved
+.TH "FTOK" P 2003 "IEEE/The Open Group" "POSIX Programmer's Manual"
+.\" ftok
+.SH NAME
+ftok \- generate an IPC key
+.SH SYNOPSIS
+.LP
+\fB#include <sys/ipc.h>
+.br
+.sp
+key_t ftok(const char *\fP\fIpath\fP\fB, int\fP \fIid\fP\fB); \fP
+\fB
+.br
+\fP
+.SH DESCRIPTION
+.LP
+The \fIftok\fP() function shall return a key based on \fIpath\fP and
+\fIid\fP that is usable in subsequent calls to \fImsgget\fP(), \fIsemget\fP(),
+and \fIshmget\fP(). The application shall ensure that the \fIpath\fP
+argument is the pathname of an
+existing file that the process is able to \fIstat\fP().
+.LP
+The \fIftok\fP() function shall return the same key value for all
+paths that name the same file, when called with the same
+\fIid\fP value, and return different key values when called with different
+\fIid\fP values or with paths that name different
+files existing on the same file system at the same time. It is unspecified
+whether \fIftok\fP() shall return the same key value
+when called again after the file named by \fIpath\fP is removed and
+recreated with the same name.
+.LP
+Only the low-order 8-bits of \fIid\fP are significant. The behavior
+of \fIftok\fP() is unspecified if these bits are 0.
+.SH RETURN VALUE
+.LP
+Upon successful completion, \fIftok\fP() shall return a key. Otherwise,
+\fIftok\fP() shall return (\fBkey_t\fP)-1 and set
+\fIerrno\fP to indicate the error.
+.SH ERRORS
+.LP
+The \fIftok\fP() function shall fail if:
+.TP 7
+.B EACCES
+Search permission is denied for a component of the path prefix.
+.TP 7
+.B ELOOP
+A loop exists in symbolic links encountered during resolution of the
+\fIpath\fP argument.
+.TP 7
+.B ENAMETOOLONG
+The length of the \fIpath\fP argument exceeds {PATH_MAX} or a pathname
+component is longer than {NAME_MAX}.
+.TP 7
+.B ENOENT
+A component of \fIpath\fP does not name an existing file or \fIpath\fP
+is an empty string.
+.TP 7
+.B ENOTDIR
+A component of the path prefix is not a directory.
+.sp
+.LP
+The \fIftok\fP() function may fail if:
+.TP 7
+.B ELOOP
+More than {SYMLOOP_MAX} symbolic links were encountered during resolution
+of the \fIpath\fP argument.
+.TP 7
+.B ENAMETOOLONG
+Pathname resolution of a symbolic link produced an intermediate result
+whose length exceeds {PATH_MAX}.
+.sp
+.LP
+\fIThe following sections are informative.\fP
+.SH EXAMPLES
+.SS Getting an IPC Key
+.LP
+The following example gets a unique key that can be used by the IPC
+functions \fIsemget\fP(), \fImsgget\fP(), and \fIshmget\fP(). The
+key returned by \fIftok\fP() for this example is based on the ID value
+\fIS\fP and the pathname \fB/tmp\fP.
+.sp
+.RS
+.nf
+
+\fB#include <sys/ipc.h>
+\&...
+key_t key;
+char *path = "/tmp";
+int id = 'S';
+.sp
+
+key = ftok(path, id);
+\fP
+.fi
+.RE
+.SS Saving an IPC Key
+.LP
+The following example gets a unique key based on the pathname \fB/tmp\fP
+and the ID value \fIa\fP. It also assigns the value
+of the resulting key to the \fIsemkey\fP variable so that it will
+be available to a later call to \fIsemget\fP(), \fImsgget\fP(), or
+\fIshmget\fP().
+.sp
+.RS
+.nf
+
+\fB#include <sys/ipc.h>
+\&...
+key_t semkey;
+.sp
+
+if ((semkey = ftok("/tmp", 'a')) == (key_t) -1) {
+ perror("IPC error: ftok"); exit(1);
+}
+\fP
+.fi
+.RE
+.SH APPLICATION USAGE
+.LP
+For maximum portability, \fIid\fP should be a single-byte character.
+.SH RATIONALE
+.LP
+None.
+.SH FUTURE DIRECTIONS
+.LP
+None.
+.SH SEE ALSO
+.LP
+\fImsgget\fP() , \fIsemget\fP() , \fIshmget\fP() , the Base Definitions
+volume of IEEE\ Std\ 1003.1-2001, \fI<sys/ipc.h>\fP
+.SH COPYRIGHT
+Portions of this text are reprinted and reproduced in electronic form
+from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology
+-- Portable Operating System Interface (POSIX), The Open Group Base
+Specifications Issue 6, Copyright (C) 2001-2003 by the Institute of
+Electrical and Electronics Engineers, Inc and The Open Group. In the
+event of any discrepancy between this version and the original IEEE and
+The Open Group Standard, the original IEEE and The Open Group Standard
+is the referee document. The original Standard can be obtained online at
+http://www.opengroup.org/unix/online.html .