diff options
Diffstat (limited to 'man-pages-posix-2013/man3p/endpwent.3p')
-rw-r--r-- | man-pages-posix-2013/man3p/endpwent.3p | 165 |
1 files changed, 165 insertions, 0 deletions
diff --git a/man-pages-posix-2013/man3p/endpwent.3p b/man-pages-posix-2013/man3p/endpwent.3p new file mode 100644 index 0000000..547d930 --- /dev/null +++ b/man-pages-posix-2013/man3p/endpwent.3p @@ -0,0 +1,165 @@ +'\" et +.TH ENDPWENT "3P" 2013 "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. When first called, +\fIgetpwent\fR() +shall return a pointer to a +.BR passwd +structure containing the first entry in the user 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 effectively rewinds the user database to allow repeated +searches. +.P +The +\fIendpwent\fR() +function may be called to close the user database when processing is +complete. +.P +These functions need not be thread-safe. +.SH "RETURN VALUE" +The +\fIgetpwent\fR() +function shall return a null pointer on end-of-file or 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(). +.SH ERRORS +These functions may fail if: +.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 +\fB +#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 \fR +.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\(hy2008, +.IR "\fB<pwd.h>\fP" +.SH COPYRIGHT +Portions of this text are reprinted and reproduced in electronic form +from IEEE Std 1003.1, 2013 Edition, Standard for Information Technology +-- Portable Operating System Interface (POSIX), The Open Group Base +Specifications Issue 7, Copyright (C) 2013 by the Institute of +Electrical and Electronics Engineers, Inc and The Open Group. +(This is POSIX.1-2008 with the 2013 Technical Corrigendum 1 applied.) 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.unix.org/online.html . + +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 . |