endgrent.3p (4935B)
- '\" et
- .TH ENDGRENT "3P" 2017 "IEEE/The Open Group" "POSIX Programmer's Manual"
- .\"
- .SH PROLOG
- This manual page is part of the POSIX Programmer's Manual.
- The Linux implementation of this interface may differ (consult
- the corresponding Linux manual page for details of Linux behavior),
- or the interface may not be implemented on Linux.
- .\"
- .SH NAME
- endgrent,
- getgrent,
- setgrent
- \(em group database entry functions
- .SH SYNOPSIS
- .LP
- .nf
- #include <grp.h>
- .P
- void endgrent(void);
- struct group *getgrent(void);
- void setgrent(void);
- .fi
- .SH DESCRIPTION
- The
- \fIgetgrent\fR()
- function shall return a pointer to a structure containing the broken-out
- fields of an entry in the group database. If the group database
- is not already open,
- \fIgetgrent\fR()
- shall open it and return a pointer to a
- .BR group
- structure containing the first entry in the database. Thereafter,
- it shall return a pointer to a
- .BR group
- structure containing the next
- .BR group
- structure in the group database, so successive calls may be used
- to search the entire database.
- .P
- 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.
- .P
- The
- \fIsetgrent\fR()
- function shall rewind the group database so that the next
- \fIgetgrent\fR()
- call returns the first entry, allowing repeated searches.
- .P
- The
- \fIendgrent\fR()
- function shall close the group database.
- .P
- The
- \fIsetgrent\fR()
- and
- \fIendgrent\fR()
- functions shall not change the setting of
- .IR errno
- if successful.
- .P
- On error, the
- \fIsetgrent\fR()
- and
- \fIendgrent\fR()
- functions shall set
- .IR errno
- to indicate the error.
- .P
- Since no value is returned by the
- \fIsetgrent\fR()
- and
- \fIendgrent\fR()
- functions, an application wishing to check for error situations
- should set
- .IR errno
- to 0, then call the function, then check
- .IR errno .
- .P
- These functions need not be thread-safe.
- .SH "RETURN VALUE"
- On successful completion,
- \fIgetgrent\fR()
- shall return a pointer to a
- .BR group
- structure. On end-of-file,
- \fIgetgrent\fR()
- shall return a null pointer and shall not change the setting of
- .IR errno .
- On error,
- \fIgetgrent\fR()
- shall return a null pointer and
- .IR errno
- shall be set to indicate the error.
- .P
- The application shall not modify the structure to which the return
- value points, nor any storage areas pointed to by pointers within the
- structure. The returned pointer, and pointers within the structure,
- might be invalidated or the structure or the storage areas might be
- overwritten by a subsequent call to
- \fIgetgrgid\fR(),
- \fIgetgrnam\fR(),
- or
- \fIgetgrent\fR().
- The returned pointer, and pointers within the structure, might
- also be invalidated if the calling thread is terminated.
- .SH ERRORS
- These functions may fail if:
- .TP
- .BR EINTR
- A signal was caught during the operation.
- .TP
- .BR EIO
- An I/O error has occurred.
- .P
- In addition, the
- \fIgetgrent\fR()
- and
- \fIsetgrent\fR()
- functions may fail if:
- .TP
- .BR EMFILE
- All file descriptors available to the process are currently open.
- .TP
- .BR ENFILE
- The maximum allowable number of files is currently open in the system.
- .LP
- .IR "The following sections are informative."
- .SH EXAMPLES
- None.
- .SH "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
- \fIgetgrnam\fR()
- and
- \fIgetgrgid\fR()
- whenever possible because it avoids these dependencies.
- .SH RATIONALE
- None.
- .SH "FUTURE DIRECTIONS"
- None.
- .SH "SEE ALSO"
- .IR "\fIendpwent\fR\^(\|)",
- .IR "\fIgetgrgid\fR\^(\|)",
- .IR "\fIgetgrnam\fR\^(\|)",
- .IR "\fIgetlogin\fR\^(\|)"
- .P
- The Base Definitions volume of POSIX.1\(hy2017,
- .IR "\fB<grp.h>\fP"
- .\"
- .SH COPYRIGHT
- Portions of this text are reprinted and reproduced in electronic form
- from IEEE Std 1003.1-2017, Standard for Information Technology
- -- Portable Operating System Interface (POSIX), The Open Group Base
- Specifications Issue 7, 2018 Edition,
- Copyright (C) 2018 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 .
- .PP
- Any typographical or formatting errors that appear
- in this page are most likely
- to have been introduced during the conversion of the source files to
- man page format. To report such errors, see
- https://www.kernel.org/doc/man-pages/reporting_bugs.html .