getgrent(3C) getgrent(3C)
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 ( )
SYNOPSIS (SYSV.2)
struct group *fgetgrent (f)
FILE *f;
DESCRIPTION
getgrent, getgrgid and getgrnam each return pointers to an
object with the following structure containing the broken-
out fields of a line in the /etc/group file. Each line con-
tains a group structure, defined in the <grp.h> header file.
This structure has the following members:
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 */
getgrent 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, succes-
sive 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 particu-
lar structure in which it was found. If an end-of-file or
an error is encountered on reading, these functions 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.
Page 1 CX/UX Programmer's Reference Manual
getgrent(3C) getgrent(3C)
Fgetgrent returns a pointer to the next group structure in
the stream f, which matches the format of /etc/group.
SECURITY FEATURES
In CX/SX, the encrypted group passwords and names of group
members are kept in /mls/group which is unreadable except by
components of the Trusted Computing Base. The file
"/etc/group", which is the "shadow" or "sanitized" group
file, is readable by all users but does not contain the
encrypted password or the group members.
If the effective-user-id of the process is "root" then get-
grent, getgrgid and getgrname attempt to open the real
(unsanitized) group file (/mls/passwd). If this fails then
they attempt to open the user visible "shadow" copy of the
group file (/etc/group).
FILES
/etc/group, /mls/group
SEE ALSO
updatepwgr(1SX), getlogin(3C), getpwent(3C), 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.
BUGS
All information is contained in a static area, so it must be
copied if it is to be saved.
Page 2 CX/UX Programmer's Reference Manual