[9] | 1 | .\" Copyright (c) 1983 Regents of the University of California.
|
---|
| 2 | .\" All rights reserved. The Berkeley software License Agreement
|
---|
| 3 | .\" specifies the terms and conditions for redistribution.
|
---|
| 4 | .\"
|
---|
| 5 | .\" @(#)getservent.3n 6.3 (Berkeley) 5/19/86
|
---|
| 6 | .\"
|
---|
| 7 | .TH GETSERVENT 3 "May 19, 1986"
|
---|
| 8 | .UC 5
|
---|
| 9 | .SH NAME
|
---|
| 10 | getservent, getservbyport, getservbyname, setservent, endservent \- get service entry
|
---|
| 11 | .SH SYNOPSIS
|
---|
| 12 | .nf
|
---|
| 13 | .ft B
|
---|
| 14 | #include <netdb.h>
|
---|
| 15 | .PP
|
---|
| 16 | .ft B
|
---|
| 17 | struct servent *getservent()
|
---|
| 18 | .PP
|
---|
| 19 | .ft B
|
---|
| 20 | struct servent *getservbyname(name, proto)
|
---|
| 21 | char *name, *proto;
|
---|
| 22 | .PP
|
---|
| 23 | .ft B
|
---|
| 24 | struct servent *getservbyport(port, proto)
|
---|
| 25 | int port; char *proto;
|
---|
| 26 | .PP
|
---|
| 27 | .ft B
|
---|
| 28 | setservent(stayopen)
|
---|
| 29 | int stayopen
|
---|
| 30 | .PP
|
---|
| 31 | .ft B
|
---|
| 32 | endservent()
|
---|
| 33 | .fi
|
---|
| 34 | .SH DESCRIPTION
|
---|
| 35 | .IR Getservent ,
|
---|
| 36 | .IR getservbyname ,
|
---|
| 37 | and
|
---|
| 38 | .I getservbyport
|
---|
| 39 | each return a pointer to an object with the
|
---|
| 40 | following structure
|
---|
| 41 | containing the broken-out
|
---|
| 42 | fields of a line in the network services data base,
|
---|
| 43 | .IR /etc/services .
|
---|
| 44 | .RS
|
---|
| 45 | .PP
|
---|
| 46 | .nf
|
---|
| 47 | struct servent {
|
---|
| 48 | char *s_name; /* official name of service */
|
---|
| 49 | char **s_aliases; /* alias list */
|
---|
| 50 | int s_port; /* port service resides at */
|
---|
| 51 | char *s_proto; /* protocol to use */
|
---|
| 52 | };
|
---|
| 53 | .ft R
|
---|
| 54 | .ad
|
---|
| 55 | .fi
|
---|
| 56 | .RE
|
---|
| 57 | .PP
|
---|
| 58 | The members of this structure are:
|
---|
| 59 | .TP \w's_aliases'u+2n
|
---|
| 60 | s_name
|
---|
| 61 | The official name of the service.
|
---|
| 62 | .TP \w's_aliases'u+2n
|
---|
| 63 | s_aliases
|
---|
| 64 | A zero terminated list of alternate names for the service.
|
---|
| 65 | .TP \w's_aliases'u+2n
|
---|
| 66 | s_port
|
---|
| 67 | The port number at which the service resides.
|
---|
| 68 | Port numbers are returned in network byte order.
|
---|
| 69 | .TP \w's_aliases'u+2n
|
---|
| 70 | s_proto
|
---|
| 71 | The name of the protocol to use when contacting the
|
---|
| 72 | service.
|
---|
| 73 | .PP
|
---|
| 74 | .I Getservent
|
---|
| 75 | reads the next line of the file, opening the file if necessary.
|
---|
| 76 | .PP
|
---|
| 77 | .I Setservent
|
---|
| 78 | opens and rewinds the file. If the
|
---|
| 79 | .I stayopen
|
---|
| 80 | flag is non-zero,
|
---|
| 81 | the net data base will not be closed after each call to
|
---|
| 82 | .I getservbyname
|
---|
| 83 | or
|
---|
| 84 | .IR getservbyport .
|
---|
| 85 | .PP
|
---|
| 86 | .I Endservent
|
---|
| 87 | closes the file.
|
---|
| 88 | .PP
|
---|
| 89 | .I Getservbyname
|
---|
| 90 | and
|
---|
| 91 | .I getservbyport
|
---|
| 92 | sequentially search from the beginning
|
---|
| 93 | of the file until a matching
|
---|
| 94 | protocol name or
|
---|
| 95 | port number is found,
|
---|
| 96 | or until EOF is encountered.
|
---|
| 97 | If a protocol name is also supplied (non-NULL),
|
---|
| 98 | searches must also match the protocol.
|
---|
| 99 | .SH FILES
|
---|
| 100 | /etc/services
|
---|
| 101 | .SH "SEE ALSO"
|
---|
| 102 | getprotoent(3), services(5)
|
---|
| 103 | .SH DIAGNOSTICS
|
---|
| 104 | Null pointer
|
---|
| 105 | (0) returned on EOF or error.
|
---|
| 106 | .SH BUGS
|
---|
| 107 | All information
|
---|
| 108 | is contained in a static area
|
---|
| 109 | so it must be copied if it is
|
---|
| 110 | to be saved. Expecting port
|
---|
| 111 | numbers to fit in a 32 bit
|
---|
| 112 | quantity is probably naive.
|
---|