Man Linux: Main Page and Category List

NAME

       getgrnam, getgrnam_r - search group database for a name

SYNOPSIS

       #include <grp.h>

       struct group *getgrnam(const char *name);

       int getgrnam_r(const char *name, struct group *grp, char *buffer,
              size_t bufsize, struct group **result);

DESCRIPTION

       The  getgrnam()  function  shall search the group database for an entry
       with a matching name.

       The getgrnam() function need not be reentrant. A function that  is  not
       required to be reentrant is not required to be thread-safe.

       The  getgrnam_r()  function shall update the group structure pointed to
       by grp and store a pointer to that structure at the location pointed to
       by result. The structure shall contain an entry from the group database
       with a matching gid or name. Storage referenced by the group  structure
       is  allocated from the memory provided with the buffer parameter, which
       is bufsize bytes in size. The maximum size needed for this  buffer  can
       be  determined  with  the {_SC_GETGR_R_SIZE_MAX} sysconf() parameter. A
       NULL pointer is returned at the location pointed to by result on  error
       or if the requested entry is not found.

RETURN VALUE

       The  getgrnam()  function shall return a pointer to a struct group with
       the structure defined in <grp.h> with a matching entry if one is found.
       The  getgrnam()  function  shall  return  a  null pointer if either the
       requested entry was not found, or an error occurred.  On  error,  errno
       shall be set to indicate the error.

       The  return  value may point to a static area which is overwritten by a
       subsequent call to getgrent(), getgrgid(), or getgrnam().

       If successful, the getgrnam_r() function shall return zero;  otherwise,
       an error number shall be returned to indicate the error.

ERRORS

       The getgrnam() and getgrnam_r() functions may fail if:

       EIO    An I/O error has occurred.

       EINTR  A signal was caught during getgrnam().

       EMFILE {OPEN_MAX}  file  descriptors  are currently open in the calling
              process.

       ENFILE The maximum allowable number of files is currently open  in  the
              system.

       The getgrnam_r() function may fail if:

       ERANGE Insufficient  storage  was  supplied  via  buffer and bufsize to
              contain the  data  to  be  referenced  by  the  resulting  group
              structure.

       The following sections are informative.

EXAMPLES

       None.

APPLICATION USAGE

       Applications  wishing to check for error situations should set errno to
       0 before calling getgrnam(). If  errno  is  set  on  return,  an  error
       occurred.

       The  getgrnam_r()  function is thread-safe and shall return values in a
       user-supplied buffer instead of possibly using a static data area  that
       may be overwritten by each call.

RATIONALE

       None.

FUTURE DIRECTIONS

       None.

SEE ALSO

       endgrent()   ,   getgrgid()   ,   the   Base   Definitions   volume  of
       IEEE Std 1003.1-2001, <grp.h>, <limits.h>, <sys/types.h>

COPYRIGHT

       Portions of this text are reprinted and reproduced in  electronic  form
       from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology
       -- Portable Operating System Interface (POSIX),  The  Open  Group  Base
       Specifications  Issue  6,  Copyright  (C) 2001-2003 by the Institute of
       Electrical and Electronics Engineers, Inc and The Open  Group.  In  the
       event of any discrepancy between this version and the original IEEE and
       The Open Group Standard, the original IEEE and The Open Group  Standard
       is  the  referee document. The original Standard can be obtained online
       at http://www.opengroup.org/unix/online.html .