getservent, getservbyname, getservbyport, setservent, endservent — get service entry
#include <netdb.h>
struct servent *getservent( |
void) ; |
struct servent *getservbyname( |
const char * | name, |
const char * | proto) ; |
struct servent *getservbyport( |
int | port, |
const char * | proto) ; |
void
setservent( |
int | stayopen) ; |
void
endservent( |
void) ; |
The getservent
() function
reads the next line from the file /etc/services
and returns a structure
servent containing the broken
out fields from the line. The /etc/services
file is opened if
necessary.
The getservbyname
() function
returns a servent structure
for the line from /etc/services
that matches the service name
using protocol proto
. If proto
is NULL, any protocol
will be matched.
The getservbyport
() function
returns a servent structure
for the line that matches the port port
given in network byte
order using protocol proto
. If proto
is NULL, any protocol
will be matched.
The setservent
() function
opens and rewinds the /etc/services
file. If stayopen
is true (1), then the
file will not be closed between calls to getservbyname
() and getservbyport
().
The endservent
() function
closes /etc/services
.
The servent structure is
defined in <
netdb.h
>
as
follows:
struct servent { char * s_name
; /* official service name */char ** s_aliases
; /* alias list */int s_port
; /* port number */char * s_proto
; /* protocol to use */};
The members of the servent structure are:
s_name
The official name of the service.
s_aliases
A zero terminated list of alternative names for the service.
s_port
The port number for the service given in network byte order.
s_proto
The name of the protocol to use with this service.
The getservent
(),
getservbyname
() and
getservbyport
() functions
return the servent structure,
or a NULL pointer if an error occurs or the end of the file
is reached.