]> git.ipfire.org Git - thirdparty/man-pages.git/blame - man3/getpwent.3
Added/updated glibc feature test macro requirements
[thirdparty/man-pages.git] / man3 / getpwent.3
CommitLineData
fea681da
MK
1.\" Copyright 1993 David Metcalfe (david@prism.demon.co.uk)
2.\"
3.\" Permission is granted to make and distribute verbatim copies of this
4.\" manual provided the copyright notice and this permission notice are
5.\" preserved on all copies.
6.\"
7.\" Permission is granted to copy and distribute modified versions of this
8.\" manual under the conditions for verbatim copying, provided that the
9.\" entire resulting derived work is distributed under the terms of a
10.\" permission notice identical to this one.
c13182ef 11.\"
fea681da
MK
12.\" Since the Linux kernel and libraries are constantly changing, this
13.\" manual page may be incorrect or out-of-date. The author(s) assume no
14.\" responsibility for errors or omissions, or for damages resulting from
15.\" the use of the information contained herein. The author(s) may not
16.\" have taken the same level of care in the production of this manual,
17.\" which is licensed free of charge, as they might when working
18.\" professionally.
c13182ef 19.\"
fea681da
MK
20.\" Formatted or processed versions of this manual, if unaccompanied by
21.\" the source, must acknowledge the copyright and authors of this work.
22.\"
23.\" References consulted:
24.\" Linux libc source code
25.\" Lewine's _POSIX Programmer's Guide_ (O'Reilly & Associates, 1991)
26.\" 386BSD man pages
27.\"
28.\" Modified Sat Jul 24 19:22:14 1993 by Rik Faith (faith@cs.unc.edu)
29.\" Modified Mon May 27 21:37:47 1996 by Martin Schulze (joey@linux.de)
30.\"
cc4615cc 31.TH GETPWENT 3 2007-07-26 "GNU" "Linux Programmer's Manual"
fea681da
MK
32.SH NAME
33getpwent, setpwent, endpwent \- get password file entry
34.SH SYNOPSIS
35.nf
36.B #include <sys/types.h>
37.B #include <pwd.h>
38.sp
39.B struct passwd *getpwent(void);
40.sp
41.B void setpwent(void);
42.sp
43.B void endpwent(void);
44.fi
cc4615cc
MK
45.sp
46.in -4n
47Feature Test Macro Requirements for glibc (see
48.BR feature_test_macros (7)):
49.in
50.sp
51.ad l
52.BR getpwent (),
53.BR setpwent (),
54.BR endpwent ():
55_BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE > = 500
56.ad b
fea681da 57.SH DESCRIPTION
60a90ecd
MK
58The
59.BR getpwent ()
60function returns a pointer to a structure containing
f2738b39 61the broken-out fields of a record from the password database
c13182ef 62(e.g., the local password file
f2738b39
MK
63.IR /etc/passwd ,
64NIS, and LDAP).
c13182ef
MK
65The first time it
66is called it returns the first entry; thereafter, it returns successive
fea681da
MK
67entries.
68.PP
60a90ecd
MK
69The
70.BR setpwent ()
71function rewinds to the beginning
f2738b39 72of the password database.
fea681da 73.PP
60a90ecd
MK
74The
75.BR endpwent ()
76function is used to close the password database
f2738b39 77after all processing has been performed.
fea681da
MK
78.PP
79The \fIpasswd\fP structure is defined in \fI<pwd.h>\fP as follows:
80.sp
f2738b39 81.RS 0.25i
fea681da
MK
82.nf
83struct passwd {
f2738b39
MK
84 char *pw_name; /* user name */
85 char *pw_passwd; /* user password */
34c97781
MK
86 uid_t pw_uid; /* user ID */
87 gid_t pw_gid; /* group ID */
f2738b39
MK
88 char *pw_gecos; /* real name */
89 char *pw_dir; /* home directory */
90 char *pw_shell; /* shell program */
fea681da
MK
91};
92.fi
93.RE
94.SH "RETURN VALUE"
60a90ecd
MK
95The
96.BR getpwent ()
97function returns a pointer to a
f2738b39 98.I passwd
c13182ef 99structure, or NULL if
fea681da 100there are no more entries or an error occurs.
f2738b39
MK
101If an error occurs,
102.I errno
103is set appropriately.
104If one wants to check
105.I errno
106after the call, it should be set to zero before the call.
fea681da
MK
107.SH ERRORS
108.TP
f2738b39
MK
109.B EINTR
110A signal was caught.
111.TP
112.B EIO
113I/O error.
114.TP
115.B EMFILE
2f0af33b
MK
116The maximum number
117.RB ( OPEN_MAX )
118of files was open already in the calling process.
f2738b39
MK
119.TP
120.B ENFILE
121The maximum number of files was open already in the system.
122.TP
fea681da 123.B ENOMEM
f2738b39 124.\" not in POSIX
fea681da 125Insufficient memory to allocate passwd structure.
f2738b39
MK
126.\" to allocate the passwd structure, or to allocate buffers
127.TP
128.B ERANGE
129Insufficient buffer space supplied.
fea681da
MK
130.SH FILES
131.TP
132.I /etc/passwd
f2738b39 133local password database file
fea681da 134.SH "CONFORMING TO"
68e1685c 135SVr4, 4.3BSD, POSIX.1-2001.
fea681da
MK
136.SH "SEE ALSO"
137.BR fgetpwent (3),
138.BR getpw (3),
139.BR getpwent_r (3),
140.BR getpwnam (3),
141.BR getpwuid (3),
142.BR putpwent (3),
143.BR passwd (5)