getgrent(3P) INTERACTIVE UNIX System (POSIX) getgrent(3P)
NAME
getgrent, getgrgid, getgrnam, setgrent, endgrent, fgetgrent
- get group file entry
SYNOPSIS
#include <grp.h>
struct group *getgrent ( )
struct group *getgrgid (gid)
gid_t gid;
struct group *getgrnam (name)
char *name;
void setgrent ( )
void endgrent ( )
struct group *fgetgrent (f)
FILE *f;
DESCRIPTION
The getgrent, getgrgid, and getgrnam functions each return
pointers to an object with the following structure contain-
ing the broken-out fields of a line in the /etc/group file.
Each line contains a ``group'' structure, defined in the
<grp.h> header file.
struct group {
char *gr_name;/* the name of the group */
char *gr_passwd;/* the encrypted group password */
gid_t gr_gid;/* the numerical group ID */
char **gr_mem;/* vector of pointers to member names */
};
The getgrent function when first called returns a pointer to
the first group structure in the file; thereafter, it
returns a pointer to the next group structure in the file,
so successive calls may be used to search the entire file.
getgrgid searches from the beginning of the file until a
numerical group ID matching gid is found and returns a
pointer to the particular structure in which it was found.
getgrnam searches from the beginning of the file until a
group name matching name is found and returns a pointer to
the particular structure in which it was found. If an end-
of-file or an error is encountered on reading, these func-
tions return a NULL pointer.
A call to setgrent has the effect of rewinding the group
file to allow repeated searches. endgrent may be called to
close the group file when processing is complete.
Rev. 1.1 Page 1
getgrent(3P) INTERACTIVE UNIX System (POSIX) getgrent(3P)
fgetgrent returns a pointer to the next group structure in
the stream f, which matches the format of /etc/group.
FILES
/etc/group
Rev. 1.1 Page 2
getgrent(3P) INTERACTIVE UNIX System (POSIX) getgrent(3P)
SEE ALSO
getlogin(3C), getpwent(3P), group(4).
DIAGNOSTICS
A NULL pointer is returned on EOF or error.
WARNING
The above routines use <stdio.h>, which causes them to
increase the size of programs, not otherwise using standard
I/O, more than might be expected.
CAVEAT
All information is contained in a static area, so it must be
copied if it is to be saved.
Rev. 1.1 Page 3