Man Linux: Main Page and Category List

NAME

       endgrent, getgrent, setgrent - group database entry functions

SYNOPSIS

       #include <grp.h>

       void endgrent(void);
       struct group *getgrent(void);
       void setgrent(void);

DESCRIPTION

       The   getgrent()  function  shall  return  a  pointer  to  a  structure
       containing the broken-out fields of an entry  in  the  group  database.
       When  first  called,  getgrent()  shall  return  a  pointer  to a group
       structure containing the first entry in the group database. Thereafter,
       it  shall  return  a  pointer  to a group structure containing the next
       group structure in the group database, so successive calls may be  used
       to search the entire database.

       An  implementation  that provides extended security controls may impose
       further implementation-defined  restrictions  on  accessing  the  group
       database.  In  particular, the system may deny the existence of some or
       all of the group database entries associated  with  groups  other  than
       those  groups  associated with the caller and may omit users other than
       the caller from the list of members of groups in database entries  that
       are returned.

       The  setgrent()  function  shall  rewind  the  group  database to allow
       repeated searches.

       The endgrent() function may be called to close the group database  when
       processing is complete.

       These  functions need not be reentrant. A function that is not required
       to be reentrant is not required to be thread-safe.

RETURN VALUE

       When first called, getgrent() shall return a pointer to the first group
       structure  in the group database. Upon subsequent calls it shall return
       the next  group  structure  in  the  group  database.   The  getgrent()
       function  shall  return  a  null pointer on end-of-file or an error and
       errno may be set to indicate the error.

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

ERRORS

       The getgrent() function may fail if:

       EINTR  A signal was caught during the operation.

       EIO    An I/O error has occurred.

       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 following sections are informative.

EXAMPLES

       None.

APPLICATION USAGE

       These   functions   are   provided   due  to  their  historical  usage.
       Applications should avoid dependencies on fields in the group database,
       whether the database is a single file, or where in the file system name
       space the database resides.  Applications  should  use  getgrnam()  and
       getgrgid() whenever possible because it avoids these dependencies.

RATIONALE

       None.

FUTURE DIRECTIONS

       None.

SEE ALSO

       getgrgid()   ,   getgrnam()  ,  getlogin()  ,  getpwent()  ,  the  Base
       Definitions volume of IEEE Std 1003.1-2001, <grp.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 .