Manual Pages for Linux CentOS command on man getpwent_r
MyWebUniversity

Manual Pages for Linux CentOS command on man getpwent_r

GETPWENTR(3) Linux Programmer's Manual GETPWENTR(3)

NAME

getpwentr, fgetpwentr - get passwd file entry reentrantly SYNOPSIS

#include int getpwentr(struct passwd *pwbuf, char *buf, sizet buflen, struct passwd **pwbufp); int fgetpwentr(FILE *fp, struct passwd *pwbuf, char *buf, sizet buflen, struct passwd **pwbufp); Feature Test Macro Requirements for glibc (see featuretestmacros(7)): getpwentr(), BSDSOURCE || SVIDSOURCE fgetpwentr(): SVIDSOURCE DESCRIPTION The functions getpwentr() and fgetpwentr() are the reentrant versions of getpwent(3) and fgetpwent(3). The former reads the next passwd entry from the stream initialized by setpwent(3). The latter reads the next passwd entry from the stream fp. The passwd structure is defined in as follows: struct passwd { char *pwname; /* username */ char *pwpasswd; /* user password */ uidt pwuid; /* user ID */ gidt pwgid; /* group ID */ char *pwgecos; /* user information */ char *pwdir; /* home directory */ char *pwshell; /* shell program */ }; For more information about the fields of this structure, see passwd(5). The nonreentrant functions return a pointer to static storage, where this static storage contains further pointers to user name, password, gecos field, home directory and shell. The reentrant functions

described here return all of that in caller-provided buffers. First of all there is the buffer pwbuf that can hold a struct passwd. And next the buffer buf of size buflen that can hold additional strings. The result of these functions, the struct passwd read from the stream, is stored in the provided buffer *pwbuf, and a pointer to this struct passwd is returned in *pwbufp. RETURN VALUE On success, these functions return 0 and *pwbufp is a pointer to the struct passwd. On error, these functions return an error value and *pwbufp is NULL. ERRORS ENOENT No more entries. ERANGE Insufficient buffer space supplied. Try again with larger buf‐ fer. CONFORMING TO These functions are GNU extensions, done in a style resembling the POSIX version of functions like getpwnamr(3). Other systems use pro‐ totype struct passwd * getpwentr(struct passwd *pwd, char *buf, int buflen); or, better, int getpwentr(struct passwd *pwd, char *buf, int buflen, FILE **pwfp); NOTES The function getpwentr() is not really reentrant since it shares the reading position in the stream with all other threads. EXAMPLE

#define GNUSOURCE

#include

#include

#define BUFLEN 4096 int main(void) { struct passwd pw, *pwp; char buf[BUFLEN]; int i; setpwent(); while (1) { i = getpwentr(&pw, buf, BUFLEN, &pwp); if (i) break;

printf("%s (%d)\tHOME %s\tSHELL %s\n", pwp->pwname,

pwp->pwuid, pwp->pwdir, pwp->pwshell); } endpwent(); exit(EXITSUCCESS); } SEE ALSO fgetpwent(3), getpw(3), getpwent(3), getpwnam(3), getpwuid(3), putp‐ went(3), passwd(5) COLOPHON

This page is part of release 3.53 of the Linux man-pages project. A description of the project, and information about reporting bugs, can

be found at http://www.kernel.org/doc/man-pages/.

GNU 2010-10-21 GETPWENTR(3)




Contact us      |      About us      |      Term of use      |       Copyright © 2000-2019 MyWebUniversity.com ™