xref: /minix3/lib/libc/net/getprotoent.3 (revision f14fb602092e015ff630df58e17c2a9cd57d29b3)
1.\"	$NetBSD: getprotoent.3,v 1.13 2011/07/14 22:12:30 wiz Exp $
2.\"
3.\" Copyright (c) 1983, 1991, 1993
4.\"	The Regents of the University of California.  All rights reserved.
5.\"
6.\" Redistribution and use in source and binary forms, with or without
7.\" modification, are permitted provided that the following conditions
8.\" are met:
9.\" 1. Redistributions of source code must retain the above copyright
10.\"    notice, this list of conditions and the following disclaimer.
11.\" 2. Redistributions in binary form must reproduce the above copyright
12.\"    notice, this list of conditions and the following disclaimer in the
13.\"    documentation and/or other materials provided with the distribution.
14.\" 3. Neither the name of the University nor the names of its contributors
15.\"    may be used to endorse or promote products derived from this software
16.\"    without specific prior written permission.
17.\"
18.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
19.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
22.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28.\" SUCH DAMAGE.
29.\"
30.\"     @(#)getprotoent.3	8.1 (Berkeley) 6/4/93
31.\"
32.Dd July 15, 2011
33.Dt GETPROTOENT 3
34.Os
35.Sh NAME
36.Nm getprotoent ,
37.Nm getprotobynumber ,
38.Nm getprotobyname ,
39.Nm setprotoent ,
40.Nm endprotoent
41.Nd get protocol entry
42.Sh LIBRARY
43.Lb libc
44.Sh SYNOPSIS
45.In netdb.h
46.Ft struct protoent *
47.Fn getprotoent
48.Ft struct protoent *
49.Fn getprotobyname "const char *name"
50.Ft struct protoent *
51.Fn getprotobynumber "int proto"
52.Ft void
53.Fn setprotoent "int stayopen"
54.Ft void
55.Fn endprotoent "void"
56.Sh DESCRIPTION
57The
58.Fn getprotoent ,
59.Fn getprotobyname ,
60and
61.Fn getprotobynumber
62functions
63each return a pointer to an object with the
64following structure
65containing the broken-out
66fields of a line in the network protocol data base,
67.Pa /etc/protocols .
68.Bd -literal -offset indent
69.Pp
70struct	protoent {
71	char	*p_name;	/* official name of protocol */
72	char	**p_aliases;	/* alias list */
73	int	p_proto;	/* protocol number */
74};
75.Ed
76.Pp
77The members of this structure are:
78.Bl -tag -width p_aliases -offset indent
79.It Fa p_name
80The official name of the protocol.
81.It Fa p_aliases
82A zero terminated list of alternative names for the protocol.
83.It Fa p_proto
84The protocol number.
85.El
86.Pp
87The
88.Fn getprotoent
89function
90reads the next line of the file, opening the file if necessary.
91.Pp
92The
93.Fn setprotoent
94function
95opens and rewinds the file.
96If the
97.Fa stayopen
98flag is non-zero,
99the net data base will not be closed after each call to
100.Fn getprotobyname
101or
102.Fn getprotobynumber .
103.Pp
104The
105.Fn endprotoent
106function
107closes the file.
108.Pp
109The
110.Fn getprotobyname
111function
112and
113.Fn getprotobynumber
114sequentially search from the beginning
115of the file until a matching
116protocol name or
117protocol number is found,
118or until
119.Dv EOF
120is encountered.
121.Sh RETURN VALUES
122Upon success,
123.Fn getprotoent ,
124.Fn getprotobyname ,
125and
126.Fn getprotobynumber
127return a pointer to the
128.Vt protoent
129structure as described above.
130A
131.Dv NULL
132pointer is returned on
133.Dv EOF
134or error.
135.Sh FILES
136.Bl -tag -width /etc/protocols -compact
137.It Pa /etc/protocols
138.El
139.Sh SEE ALSO
140.Xr protocols 5
141.Sh HISTORY
142The
143.Fn getprotoent ,
144.Fn getprotobynumber ,
145.Fn getprotobyname ,
146.Fn setprotoent ,
147and
148.Fn endprotoent
149functions appeared in
150.Bx 4.2 .
151.Sh BUGS
152These functions use a static data space;
153if the data is needed for future use, it should be
154copied before any subsequent calls overwrite it.
155Only the Internet
156protocols are currently understood.
157