diff options
Diffstat (limited to 'upstream/archlinux/man3p/endpwent.3p')
-rw-r--r-- | upstream/archlinux/man3p/endpwent.3p | 208 |
1 files changed, 208 insertions, 0 deletions
diff --git a/upstream/archlinux/man3p/endpwent.3p b/upstream/archlinux/man3p/endpwent.3p new file mode 100644 index 00000000..1fa549d2 --- /dev/null +++ b/upstream/archlinux/man3p/endpwent.3p @@ -0,0 +1,208 @@ +'\" et +.TH ENDPWENT "3P" 2017 "IEEE/The Open Group" "POSIX Programmer's Manual" +.\" +.SH PROLOG +This manual page is part of the POSIX Programmer's Manual. +The Linux implementation of this interface may differ (consult +the corresponding Linux manual page for details of Linux behavior), +or the interface may not be implemented on Linux. +.\" +.SH NAME +endpwent, +getpwent, +setpwent +\(em user database functions +.SH SYNOPSIS +.LP +.nf +#include <pwd.h> +.P +void endpwent(void); +struct passwd *getpwent(void); +void setpwent(void); +.fi +.SH DESCRIPTION +These functions shall retrieve information about users. +.P +The +\fIgetpwent\fR() +function shall return a pointer to a structure containing the broken-out +fields of an entry in the user database. Each entry in the user +database contains a +.BR passwd +structure. If the user database is not already open, +\fIgetpwent\fR() +shall open it and return a pointer to a +.BR passwd +structure containing the first entry in the database. Thereafter, +it shall return a pointer to a +.BR passwd +structure containing the next entry in the user database. Successive +calls can be used to search the entire user database. +.P +If an end-of-file or an error is encountered on reading, +\fIgetpwent\fR() +shall return a null pointer. +.P +An implementation that provides extended security controls may impose +further implementation-defined restrictions on accessing the user +database. In particular, the system may deny the existence of some or +all of the user database entries associated with users other than the +caller. +.P +The +\fIsetpwent\fR() +function shall rewind the user database so that the next +\fIgetpwent\fR() +call returns the first entry, allowing repeated searches. +.P +The +\fIendpwent\fR() +function shall close the user database. +.P +The +\fIsetpwent\fR() +and +\fIendpwent\fR() +functions shall not change the setting of +.IR errno +if successful. +.P +On error, the +\fIsetpwent\fR() +and +\fIendpwent\fR() +functions shall set +.IR errno +to indicate the error. +.P +Since no value is returned by the +\fIsetpwent\fR() +and +\fIendpwent\fR() +functions, an application wishing to check for error situations +should set +.IR errno +to 0, then call the function, then check +.IR errno . +.P +These functions need not be thread-safe. +.SH "RETURN VALUE" +On successful completion, +\fIgetpwent\fR() +shall return a pointer to a +.BR passwd +structure. On end-of-file, +\fIgetpwent\fR() +shall return a null pointer and shall not change the setting of +.IR errno . +On error, +\fIgetpwent\fR() +shall return a null pointer and +.IR errno +shall be set to indicate the error. +.P +The application shall not modify the structure to which the return +value points, nor any storage areas pointed to by pointers within the +structure. The returned pointer, and pointers within the structure, +might be invalidated or the structure or the storage areas might be +overwritten by a subsequent call to +\fIgetpwuid\fR(), +\fIgetpwnam\fR(), +or +\fIgetpwent\fR(). +The returned pointer, and pointers within the structure, might also +be invalidated if the calling thread is terminated. +.SH ERRORS +These functions may fail if: +.TP +.BR EINTR +A signal was caught during the operation. +.TP +.BR EIO +An I/O error has occurred. +.P +In addition, +\fIgetpwent\fR() +and +\fIsetpwent\fR() +may fail if: +.TP +.BR EMFILE +All file descriptors available to the process are currently open. +.TP +.BR ENFILE +The maximum allowable number of files is currently open in the system. +.LP +.IR "The following sections are informative." +.SH EXAMPLES +.SS "Searching the User Database" +.P +The following example uses the +\fIgetpwent\fR() +function to get successive entries in the user database, returning a +pointer to a +.BR passwd +structure that contains information about each user. The call to +\fIendpwent\fR() +closes the user database and cleans up. +.sp +.RS 4 +.nf + +#include <pwd.h> +#include <stdio.h> +.P +void printname(uid_t uid) +{ + struct passwd *pwd; +.P + setpwent(); + while((pwd = getpwent()) != NULL) { + if (pwd->pw_uid == uid) { + printf("name=%s\en",pwd->pw_name); + break; + } + } + endpwent(); +} +.fi +.P +.RE +.SH "APPLICATION USAGE" +These functions are provided due to their historical usage. +Applications should avoid dependencies on fields in the password +database, whether the database is a single file, or where in the +file system name space the database resides. Applications should use +\fIgetpwuid\fR() +whenever possible because it avoids these dependencies. +.SH RATIONALE +None. +.SH "FUTURE DIRECTIONS" +None. +.SH "SEE ALSO" +.IR "\fIendgrent\fR\^(\|)", +.IR "\fIgetlogin\fR\^(\|)", +.IR "\fIgetpwnam\fR\^(\|)", +.IR "\fIgetpwuid\fR\^(\|)" +.P +The Base Definitions volume of POSIX.1\(hy2017, +.IR "\fB<pwd.h>\fP" +.\" +.SH COPYRIGHT +Portions of this text are reprinted and reproduced in electronic form +from IEEE Std 1003.1-2017, Standard for Information Technology +-- Portable Operating System Interface (POSIX), The Open Group Base +Specifications Issue 7, 2018 Edition, +Copyright (C) 2018 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 . +.PP +Any typographical or formatting errors that appear +in this page are most likely +to have been introduced during the conversion of the source files to +man page format. To report such errors, see +https://www.kernel.org/doc/man-pages/reporting_bugs.html . |