summaryrefslogtreecommitdiffstats
path: root/man3p/getutxid.3p
diff options
context:
space:
mode:
Diffstat (limited to 'man3p/getutxid.3p')
-rw-r--r--man3p/getutxid.3p199
1 files changed, 199 insertions, 0 deletions
diff --git a/man3p/getutxid.3p b/man3p/getutxid.3p
new file mode 100644
index 000000000..1b0d8feb5
--- /dev/null
+++ b/man3p/getutxid.3p
@@ -0,0 +1,199 @@
+.\" Copyright (c) 2001-2003 The Open Group, All Rights Reserved
+.TH "ENDUTXENT" P 2003 "IEEE/The Open Group" "POSIX Programmer's Manual"
+.\" endutxent
+.SH NAME
+endutxent, getutxent, getutxid, getutxline, pututxline, setutxent
+\- user accounting database functions
+.SH SYNOPSIS
+.LP
+\fB#include <utmpx.h>
+.br
+.sp
+void endutxent(void);
+.br
+struct utmpx *getutxent(void);
+.br
+struct utmpx *getutxid(const struct utmpx *\fP\fIid\fP\fB);
+.br
+struct utmpx *getutxline(const struct utmpx *\fP\fIline\fP\fB);
+.br
+struct utmpx *pututxline(const struct utmpx *\fP\fIutmpx\fP\fB);
+.br
+void setutxent(void); \fP
+\fB
+.br
+\fP
+.SH DESCRIPTION
+.LP
+These functions shall provide access to the user accounting database.
+.LP
+The \fIgetutxent\fP() function shall read the next entry from the
+user accounting database. If the database is not already
+open, it shall open it. If it reaches the end of the database, it
+shall fail.
+.LP
+The \fIgetutxid\fP() function shall search forward from the current
+point in the database. If the \fIut_type\fP value of the
+\fButmpx\fP structure pointed to by \fIid\fP is BOOT_TIME, OLD_TIME,
+or NEW_TIME, then it shall stop when it finds an entry with
+a matching \fIut_type\fP value. If the \fIut_type\fP value is INIT_PROCESS,
+LOGIN_PROCESS, USER_PROCESS, or DEAD_PROCESS, then it
+shall stop when it finds an entry whose type is one of these four
+and whose \fIut_id\fP member matches the \fIut_id\fP member of
+the \fButmpx\fP structure pointed to by \fIid\fP. If the end of the
+database is reached without a match, \fIgetutxid\fP() shall
+fail.
+.LP
+The \fIgetutxline\fP() function shall search forward from the current
+point in the database until it finds an entry of the type
+LOGIN_PROCESS or USER_PROCESS which also has a \fIut_line\fP value
+matching that in the \fButmpx\fP structure pointed to by
+\fIline\fP. If the end of the database is reached without a match,
+\fIgetutxline\fP() shall fail.
+.LP
+The \fIgetutxid\fP() or \fIgetutxline\fP() function may cache data.
+For this reason, to use \fIgetutxline\fP() to search for
+multiple occurrences, the application shall zero out the static data
+after each success, or \fIgetutxline\fP() may return a
+pointer to the same \fButmpx\fP structure.
+.LP
+There is one exception to the rule about clearing the structure before
+further reads are done. The implicit read done by
+\fIpututxline\fP() (if it finds that it is not already at the correct
+place in the user accounting database) shall not modify the
+static structure returned by \fIgetutxent\fP(), \fIgetutxid\fP(),
+or \fIgetutxline\fP(), if the application has modified this
+structure and passed the pointer back to \fIpututxline\fP().
+.LP
+For all entries that match a request, the \fIut_type\fP member indicates
+the type of the entry. Other members of the entry
+shall contain meaningful data based on the value of the \fIut_type\fP
+member as follows:
+.TS C
+center; l lw(40).
+\fBut_type Member\fP T{
+.na
+\fBOther Members with Meaningful Data\fP
+.ad
+T}
+EMPTY T{
+.na
+No others
+.ad
+T}
+BOOT_TIME T{
+.na
+\fIut_tv\fP
+.ad
+T}
+OLD_TIME T{
+.na
+\fIut_tv\fP
+.ad
+T}
+NEW_TIME T{
+.na
+\fIut_tv\fP
+.ad
+T}
+USER_PROCESS T{
+.na
+\fIut_id\fP, \fIut_user\fP (login name of the user), \fIut_line\fP, \fIut_pid\fP, \fIut_tv\fP
+.ad
+T}
+INIT_PROCESS T{
+.na
+\fIut_id\fP, \fIut_pid\fP, \fIut_tv\fP
+.ad
+T}
+LOGIN_PROCESS T{
+.na
+\fIut_id\fP, \fIut_user\fP (implementation-defined name of the login process), \fIut_pid\fP, \fIut_tv\fP
+.ad
+T}
+DEAD_PROCESS T{
+.na
+\fIut_id\fP, \fIut_pid\fP, \fIut_tv\fP
+.ad
+T}
+.TE
+.LP
+An implementation that provides extended security controls may impose
+implementation-defined restrictions on accessing the user
+accounting database. In particular, the system may deny the existence
+of some or all of the user accounting database entries
+associated with users other than the caller.
+.LP
+If the process has appropriate privileges, the \fIpututxline\fP()
+function shall write out the structure into the user
+accounting database. It shall use \fIgetutxid\fP() to search for a
+record that satisfies the request. If this search succeeds,
+then the entry shall be replaced. Otherwise, a new entry shall be
+made at the end of the user accounting database.
+.LP
+The \fIendutxent\fP() function shall close the user accounting database.
+.LP
+The \fIsetutxent\fP() function shall reset the input to the beginning
+of the database. This should be done before each search
+for a new entry if it is desired that the entire database be examined.
+.LP
+These functions need not be reentrant. A function that is not required
+to be reentrant is not required to be thread-safe.
+.SH RETURN VALUE
+.LP
+Upon successful completion, \fIgetutxent\fP(), \fIgetutxid\fP(), and
+\fIgetutxline\fP() shall return a pointer to a
+\fButmpx\fP structure containing a copy of the requested entry in
+the user accounting database. Otherwise, a null pointer shall be
+returned.
+.LP
+The return value may point to a static area which is overwritten by
+a subsequent call to \fIgetutxid\fP() or
+\fIgetutxline\fP().
+.LP
+Upon successful completion, \fIpututxline\fP() shall return a pointer
+to a \fButmpx\fP structure containing a copy of the
+entry added to the user accounting database. Otherwise, a null pointer
+shall be returned.
+.LP
+The \fIendutxent\fP() and \fIsetutxent\fP() functions shall not return
+a value.
+.SH ERRORS
+.LP
+No errors are defined for the \fIendutxent\fP(), \fIgetutxent\fP(),
+\fIgetutxid\fP(), \fIgetutxline\fP(), and
+\fIsetutxent\fP() functions.
+.LP
+The \fIpututxline\fP() function may fail if:
+.TP 7
+.B EPERM
+The process does not have appropriate privileges.
+.sp
+.LP
+\fIThe following sections are informative.\fP
+.SH EXAMPLES
+.LP
+None.
+.SH APPLICATION USAGE
+.LP
+The sizes of the arrays in the structure can be found using the \fIsizeof\fP
+operator.
+.SH RATIONALE
+.LP
+None.
+.SH FUTURE DIRECTIONS
+.LP
+None.
+.SH SEE ALSO
+.LP
+The Base Definitions volume of IEEE\ Std\ 1003.1-2001, \fI<utmpx.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 .