Looking Up One Group
--------------------
You can search the group database for information about a specific
group using `getgrgid' or `getgrnam'. These functions are declared in
`grp.h'.
- Function: struct group * getgrgid (gid_t GID)
This function returns a pointer to a statically-allocated structure
containing information about the group whose group ID is GID.
This structure may be overwritten by subsequent calls to
`getgrgid'.
A null pointer indicates there is no group with ID GID.
- Function: int getgrgid_r (gid_t GID, struct group *RESULT_BUF, char
*BUFFER, size_t BUFLEN, struct group **RESULT)
This function is similar to `getgrgid' in that it returns
information about the group whose group ID is GID. However, it
fills the user supplied structure pointed to by RESULT_BUF with
the information instead of using a static buffer. The first
BUFLEN bytes of the additional buffer pointed to by BUFFER are
used to contain additional information, normally strings which are
pointed to by the elements of the result structure.
If a group with ID GID is found, the pointer returned in RESULT
points to the record which contains the wanted data (i.e., RESULT
contains the value RESULT_BUF). If no group is found or if an
error occurred, the pointer returned in RESULT is a null pointer.
The function returns zero or an error code. If the buffer BUFFER
is too small to contain all the needed information, the error code
`ERANGE' is returned and ERRNO is set to `ERANGE'.
- Function: struct group * getgrnam (const char *NAME)
This function returns a pointer to a statically-allocated structure
containing information about the group whose group name is NAME.
This structure may be overwritten by subsequent calls to
`getgrnam'.
A null pointer indicates there is no group named NAME.
- Function: int getgrnam_r (const char *NAME, struct group
*RESULT_BUF, char *BUFFER, size_t BUFLEN, struct group
**RESULT)
This function is similar to `getgrnam' in that is returns
information about the group whose group name is NAME. Like
`getgrgid_r', it uses the user supplied buffers in RESULT_BUF and
BUFFER, not a static buffer.
The return values are the same as for `getgrgid_r' `ERANGE'.