.\" based on glibc infopages
.\" polished - aeb
.\"
-.TH SETNETGRENT 3 2007-07-26 "GNU" "Linux Programmer's Manual"
+.TH SETNETGRENT 3 2017-09-15 "GNU" "Linux Programmer's Manual"
.SH NAME
setnetgrent, endnetgrent, getnetgrent, getnetgrent_r, innetgr \-
handle network group entries
.SH SYNOPSIS
.nf
.B #include <netdb.h>
-
+.PP
.BI "int setnetgrent(const char *" netgroup );
-
+.PP
.B "void endnetgrent(void);"
-
+.PP
.BI "int getnetgrent(char **" host ", char **" user ", char **" domain );
-
+.PP
.BI "int getnetgrent_r(char **" host ", char **" user ","
-.BI " char **" domain ", char *" buf ", int " buflen );
-
+.BI " char **" domain ", char *" buf ", size_t " buflen );
+.PP
.BI "int innetgr(const char *" netgroup ", const char *" host ","
.BI " const char *" user ", const char *" domain );
.fi
-.sp
+.PP
.in -4n
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
.in
-.sp
+.PP
.ad l
.BR setnetgrent (),
.BR endnetgrent (),
.BR getnetgrent (),
.BR getnetgrent_r (),
.BR innetgr ():
-_BSD_SOURCE || _SVID_SOURCE
+ Since glibc 2.19:
+ _DEFAULT_SOURCE
+ Glibc 2.19 and earlier:
+ _BSD_SOURCE || _SVID_SOURCE
.ad b
.SH DESCRIPTION
The
.I /etc/netgroup
.br
.I /etc/nsswitch.conf
+.SH ATTRIBUTES
+For an explanation of the terms used in this section, see
+.BR attributes (7).
+.TS
+allbox;
+lbw16 lb lbw23
+l l l.
+Interface Attribute Value
+T{
+.BR setnetgrent (),
+.br
+.BR getnetgrent_r (),
+.br
+.BR innetgr ()
+T} Thread safety T{
+MT-Unsafe race:netgrent
+.br
+locale
+T}
+T{
+.BR endnetgrent ()
+T} Thread safety MT-Unsafe race:netgrent
+T{
+.BR getnetgrent ()
+T} Thread safety T{
+MT-Unsafe race:netgrent
+.br
+race:netgrentbuf locale
+T}
+.TE
+.sp 1
+In the above table,
+.I netgrent
+in
+.I race:netgrent
+signifies that if any of the functions
+.BR setnetgrent (),
+.BR getnetgrent_r (),
+.BR innetgr (),
+.BR getnetgrent (),
+or
+.BR endnetgrent ()
+are used in parallel in different threads of a program,
+then data races could occur.
.SH CONFORMING TO
-These functions are not in POSIX.1-2001, but
+These functions are not in POSIX.1, but
.BR setnetgrent (),
.BR endnetgrent (),
.BR getnetgrent (),