getgrent, getgrgid, getgrnam, setgrent, endgrent setgrfile - get
group file entry

#include <grp.h>

struct group *getgrent()

struct group *getgrgid(gid)
gid_t gid;

struct group *getgrnam(name)
const char *name;

int setgrent()

void endgrent()

void setgrfile(name)
const char *name;

Getgrent, getgrgid and getgrnam each return pointers to an object
with the following structure containing the broken-out fields of a
line in the group file.

struct group { /* see getgrent(3) */
char *gr_name;
char *gr_passwd;
int gr_gid;
char **gr_mem;

struct group *getgrent(), *getgrgid(), *getgrnam();

The members of this structure are:

gr_name The name of the group.
gr_passwd The encrypted password of the group.
gr_gid The numerical group-ID.
gr_mem Null-terminated vector of pointers to the individual
member names.

Getgrent simply reads the next line while getgrgid and getgrnam
search until a matching gid or name is found (or until EOF is
encountered). Each routine picks up where the others leave off so
successive calls may be used to search the entire file.

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.

Setgrfile changes the default group file to name thus allowing
alternate group files to be used. Note that it does not close the
previous file. If this is desired, endgrent should be called prior
to it.


getlogin(3), getpwent(3), group(5)

A null pointer (0) is returned on EOF or error.

All information is contained in a static area so it must be copied
if it is to be saved.