|
|
1.1 root 1: .\" Copyright (c) 1983 The Regents of the University of California.
2: .\" All rights reserved.
3: .\"
4: .\" Redistribution and use in source and binary forms are permitted provided
5: .\" that: (1) source distributions retain this entire copyright notice and
6: .\" comment, and (2) distributions including binaries display the following
7: .\" acknowledgement: ``This product includes software developed by the
8: .\" University of California, Berkeley and its contributors'' in the
9: .\" documentation or other materials provided with the distribution and in
10: .\" all advertising materials mentioning features or use of this software.
11: .\" Neither the name of the University nor the names of its contributors may
12: .\" be used to endorse or promote products derived from this software without
13: .\" specific prior written permission.
14: .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
15: .\" WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
16: .\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
17: .\"
18: .\" @(#)getservent.3 6.5 (Berkeley) 6/23/90
19: .\"
20: .TH GETSERVENT 3 "June 23, 1990"
21: .UC 5
22: .SH NAME
23: getservent, getservbyport, getservbyname, setservent,
24: endservent \- get service entry
25: .SH SYNOPSIS
26: .nf
27: .ft B
28: #include <netdb.h>
29: .PP
30: .ft B
31: struct servent *getservent()
32: .PP
33: .ft B
34: struct servent *getservbyname(name, proto)
35: char *name, *proto;
36: .PP
37: .ft B
38: struct servent *getservbyport(port, proto)
39: int port; char *proto;
40: .PP
41: .ft B
42: setservent(stayopen)
43: int stayopen
44: .PP
45: .ft B
46: endservent()
47: .fi
48: .SH DESCRIPTION
49: .IR Getservent ,
50: .IR getservbyname ,
51: and
52: .I getservbyport
53: each return a pointer to an object with the
54: following structure
55: containing the broken-out
56: fields of a line in the network services data base,
57: .IR /etc/services .
58: .RS
59: .PP
60: .nf
61: struct servent {
62: char *s_name; /* official name of service */
63: char **s_aliases; /* alias list */
64: int s_port; /* port service resides at */
65: char *s_proto; /* protocol to use */
66: };
67: .ft R
68: .ad
69: .fi
70: .RE
71: .PP
72: The members of this structure are:
73: .TP \w's_aliases'u+2n
74: s_name
75: The official name of the service.
76: .TP \w's_aliases'u+2n
77: s_aliases
78: A zero terminated list of alternate names for the service.
79: .TP \w's_aliases'u+2n
80: s_port
81: The port number at which the service resides.
82: Port numbers are returned in network byte order.
83: .TP \w's_aliases'u+2n
84: s_proto
85: The name of the protocol to use when contacting the
86: service.
87: .PP
88: .I Getservent
89: reads the next line of the file, opening the file if necessary.
90: .PP
91: .I Setservent
92: opens and rewinds the file. If the
93: .I stayopen
94: flag is non-zero,
95: the net data base will not be closed after each call to
96: .I getservbyname
97: or .IR getservbyport .
98: .PP
99: .I Endservent
100: closes the file.
101: .PP
102: .I Getservbyname
103: and
104: .I getservbyport
105: sequentially search from the beginning
106: of the file until a matching
107: protocol name or
108: port number is found,
109: or until EOF is encountered.
110: If a protocol name is also supplied (non-NULL),
111: searches must also match the protocol.
112: .SH FILES
113: /etc/services
114: .SH "SEE ALSO"
115: getprotoent(3), services(5)
116: .SH DIAGNOSTICS
117: Null pointer
118: (0) returned on EOF or error.
119: .SH BUGS
120: All information
121: is contained in a static area
122: so it must be copied if it is
123: to be saved. Expecting port
124: numbers to fit in a 32 bit
125: quantity is probably naive.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.