struct
servent
*
getservent(
)
struct
servent
*
getservbyname(
const char *name
, const char *proto
)
struct
servent
*
getservbyport(
int port
, const char *proto
)
void
setservent(
int stayopen
)
void
endservent(
void
)
),
getservbyname(
),
and
getservbyport(
)
functions
each return a pointer to an object with the
following structure
containing the broken-out
fields of a line in the network services data base,
/etc/services
.
struct servent {
char *s_name; /* official name of service */
char **s_aliases; /* alias list */
int s_port; /* port service resides at */
char *s_proto; /* protocol to use */
};
The members of this structure are:
s_name
s_aliases
s_port
s_proto
The
getservent()
function
reads the next line of the file, opening the file if necessary.
The
setservent()
function
opens and rewinds the file. If the
stayopen
flag is non-zero,
the net data base will not be closed after each call to
getservbyname()
or
getservbyport(
).
The
endservent()
function
closes the file.
The
getservbyname()
and
getservbyport(
)
functions
sequentially search from the beginning
of the file until a matching
protocol name or
port number is found,
or until
EOF
is encountered.
If a protocol name is also supplied (non-NULL
),
searches must also match the protocol.
/etc/services
EOF
or error.
),
getservbyport(
),
getservbyname(
),
setservent(
),
and
endservent(
)
functions appeared in
4.2BSD.