]> git.ipfire.org Git - thirdparty/man-pages.git/blobdiff - man3/getprotoent.3
user_namespaces.7: Minor rewordings of recently added text
[thirdparty/man-pages.git] / man3 / getprotoent.3
index 0c6912911fdbe9b5dc50a893cf44323616f746fe..e6e158d82a64eff7aec21dfa4856784d925bc61a 100644 (file)
@@ -1,5 +1,6 @@
 .\" Copyright 1993 David Metcalfe (david@prism.demon.co.uk)
 .\"
+.\" %%%LICENSE_START(VERBATIM)
 .\" Permission is granted to make and distribute verbatim copies of this
 .\" manual provided the copyright notice and this permission notice are
 .\" preserved on all copies.
 .\"
 .\" Formatted or processed versions of this manual, if unaccompanied by
 .\" the source, must acknowledge the copyright and authors of this work.
+.\" %%%LICENSE_END
 .\"
 .\" References consulted:
 .\"     Linux libc source code
 .\"     Lewine's _POSIX Programmer's Guide_ (O'Reilly & Associates, 1991)
 .\"     386BSD man pages
 .\" Modified Sat Jul 24 19:26:03 1993 by Rik Faith (faith@cs.unc.edu)
-.TH GETPROTOENT 3  1993-04-24 "GNU" "Linux Programmer's Manual"
+.TH GETPROTOENT 3  2017-09-15 "GNU" "Linux Programmer's Manual"
 .SH NAME
 getprotoent, getprotobyname, getprotobynumber, setprotoent,
 endprotoent \- get protocol entry
 .SH SYNOPSIS
 .nf
 .B #include <netdb.h>
-.sp
+.PP
 .B struct protoent *getprotoent(void);
-.sp
+.PP
 .BI "struct protoent *getprotobyname(const char *" name );
-.sp
+.PP
 .BI "struct protoent *getprotobynumber(int " proto );
-.sp
+.PP
 .BI "void setprotoent(int " stayopen );
-.sp
+.PP
 .B void endprotoent(void);
 .fi
 .SH DESCRIPTION
 The
 .BR getprotoent ()
-function reads the next line from the file
-\fI/etc/protocols\fP and returns a structure \fIprotoent\fP
-containing the broken out fields from the line.
-The \fI/etc/protocols\fP file is opened if necessary.
+function reads the next entry from the protocols database (see
+.BR protocols (5))
+and returns a
+.I protoent
+structure
+containing the broken-out fields from the entry.
+A connection is opened to the database if necessary.
 .PP
 The
 .BR getprotobyname ()
-function returns a \fIprotoent\fP
-structure for the line from \fI/etc/protocols\fP that matches
-the protocol name \fIname\fP.
+function returns a
+.I protoent
+structure
+for the entry from the database
+that matches the protocol name
+.IR name .
+A connection is opened to the database if necessary.
 .PP
 The
 .BR getprotobynumber ()
-function returns a \fIprotoent\fP
-structure for the line that matches the protocol number \fInumber\fP.
+function returns a
+.I protoent
+structure
+for the entry from the database
+that matches the protocol number
+.IR number .
+A connection is opened to the database if necessary.
 .PP
 The
 .BR setprotoent ()
-function opens and rewinds the
-\fI/etc/protocols\fP file.
-If \fIstayopen\fP is true (1), then
-the file will not be closed between calls to
-.BR getprotobyname ()
-or
-.BR getprotobynumber ().
+function opens a connection to the database,
+and sets the next entry to the first entry.
+If
+.I stayopen
+is nonzero,
+then the connection to the database
+will not be closed between calls to one of the
+.BR getproto* ()
+functions.
 .PP
 The
 .BR endprotoent ()
-function closes \fI/etc/protocols\fP.
+function closes the connection to the database.
+.PP
+The
+.I protoent
+structure is defined in
+.I <netdb.h>
+as follows:
 .PP
-The \fIprotoent\fP structure is defined in \fI<netdb.h>\fP as follows:
-.sp
 .in +4n
-.nf
+.EX
 struct protoent {
     char  *p_name;       /* official protocol name */
     char **p_aliases;    /* alias list */
     int    p_proto;      /* protocol number */
 }
-.fi
+.EE
 .in
 .PP
-The members of the \fIprotoent\fP structure are:
+The members of the
+.I protoent
+structure are:
 .TP
 .I p_name
 The official name of the protocol.
 .TP
 .I p_aliases
-A zero terminated list of alternative names for the protocol.
+A NULL-terminated list of alternative names for the protocol.
 .TP
 .I p_proto
 The protocol number.
-.SH "RETURN VALUE"
+.SH RETURN VALUE
 The
 .BR getprotoent (),
 .BR getprotobyname ()
 and
 .BR getprotobynumber ()
-functions return the \fIprotoent\fP structure, or a NULL pointer if an
+functions return a pointer to a
+statically allocated
+.I protoent
+structure, or a null pointer if an
 error occurs or the end of the file is reached.
 .SH FILES
 .PD 0
@@ -112,9 +137,61 @@ error occurs or the end of the file is reached.
 .I /etc/protocols
 protocol database file
 .PD
-.SH "CONFORMING TO"
-4.3BSD, POSIX.1-2001.
-.SH "SEE ALSO"
+.SH ATTRIBUTES
+For an explanation of the terms used in this section, see
+.BR attributes (7).
+.TS
+allbox;
+lbw18 lb lbw28
+l l l.
+Interface      Attribute       Value
+T{
+.BR getprotoent ()
+T}     Thread safety   T{
+MT-Unsafe race:protoent
+.br
+race:protoentbuf locale
+T}
+T{
+.BR getprotobyname ()
+T}     Thread safety   T{
+MT-Unsafe race:protobyname
+.br
+locale
+T}
+T{
+.BR getprotobynumber ()
+T}     Thread safety   T{
+MT-Unsafe race:protobynumber
+.br
+locale
+T}
+T{
+.BR setprotoent (),
+.br
+.BR endprotoent ()
+T}     Thread safety   T{
+MT-Unsafe race:protoent
+.br
+locale
+T}
+.TE
+.sp 1
+In the above table,
+.I protoent
+in
+.I race:protoent
+signifies that if any of the functions
+.BR setprotoent (),
+.BR getprotoent (),
+or
+.BR endprotoent ()
+are used in parallel in different threads of a program,
+then data races could occur.
+.SH CONFORMING TO
+POSIX.1-2001, POSIX.1-2008, 4.3BSD.
+.SH SEE ALSO
 .BR getnetent (3),
+.BR getprotoent_r (3),
 .BR getservent (3),
 .BR protocols (5)