summaryrefslogtreecommitdiffstats
path: root/man/man3/getprotoent.3
diff options
context:
space:
mode:
Diffstat (limited to 'man/man3/getprotoent.3')
-rw-r--r--man/man3/getprotoent.3192
1 files changed, 192 insertions, 0 deletions
diff --git a/man/man3/getprotoent.3 b/man/man3/getprotoent.3
new file mode 100644
index 0000000..1052299
--- /dev/null
+++ b/man/man3/getprotoent.3
@@ -0,0 +1,192 @@
+'\" t
+.\" Copyright 1993 David Metcalfe (david@prism.demon.co.uk)
+.\"
+.\" SPDX-License-Identifier: Linux-man-pages-copyleft
+.\"
+.\" 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 2024-05-02 "Linux man-pages (unreleased)"
+.SH NAME
+getprotoent, getprotobyname, getprotobynumber, setprotoent,
+endprotoent \- get protocol entry
+.SH LIBRARY
+Standard C library
+.RI ( libc ", " \-lc )
+.SH SYNOPSIS
+.nf
+.B #include <netdb.h>
+.P
+.B struct protoent *getprotoent(void);
+.P
+.BI "struct protoent *getprotobyname(const char *" name );
+.BI "struct protoent *getprotobynumber(int " proto );
+.P
+.BI "void setprotoent(int " stayopen );
+.B void endprotoent(void);
+.fi
+.SH DESCRIPTION
+The
+.BR getprotoent ()
+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.
+.P
+The
+.BR getprotobyname ()
+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.
+.P
+The
+.BR getprotobynumber ()
+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.
+.P
+The
+.BR setprotoent ()
+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.
+.P
+The
+.BR endprotoent ()
+function closes the connection to the database.
+.P
+The
+.I protoent
+structure is defined in
+.I <netdb.h>
+as follows:
+.P
+.in +4n
+.EX
+struct protoent {
+ char *p_name; /* official protocol name */
+ char **p_aliases; /* alias list */
+ int p_proto; /* protocol number */
+}
+.EE
+.in
+.P
+The members of the
+.I protoent
+structure are:
+.TP
+.I p_name
+The official name of the protocol.
+.TP
+.I p_aliases
+A NULL-terminated list of alternative names for the protocol.
+.TP
+.I p_proto
+The protocol number.
+.SH RETURN VALUE
+The
+.BR getprotoent (),
+.BR getprotobyname (),
+and
+.BR getprotobynumber ()
+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
+.TP
+.I /etc/protocols
+protocol database file
+.PD
+.SH ATTRIBUTES
+For an explanation of the terms used in this section, see
+.BR attributes (7).
+.TS
+allbox;
+lb lb lbx
+l l l.
+Interface Attribute Value
+T{
+.na
+.nh
+.BR getprotoent ()
+T} Thread safety T{
+.na
+.nh
+MT-Unsafe race:protoent
+race:protoentbuf locale
+T}
+T{
+.na
+.nh
+.BR getprotobyname ()
+T} Thread safety T{
+.na
+.nh
+MT-Unsafe race:protobyname
+locale
+T}
+T{
+.na
+.nh
+.BR getprotobynumber ()
+T} Thread safety T{
+.na
+.nh
+MT-Unsafe race:protobynumber
+locale
+T}
+T{
+.na
+.nh
+.BR setprotoent (),
+.BR endprotoent ()
+T} Thread safety T{
+.na
+.nh
+MT-Unsafe race:protoent
+locale
+T}
+.TE
+.P
+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 STANDARDS
+POSIX.1-2008.
+.SH HISTORY
+POSIX.1-2001, 4.3BSD.
+.SH SEE ALSO
+.BR getnetent (3),
+.BR getprotoent_r (3),
+.BR getservent (3),
+.BR protocols (5)