| Developer's Daily | Unix by Example |
| main | java | perl | unix | dev directory | web log |
|
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. The getservbyport() function returns a servent structure for the line that matches the port port given in network byte order using protocol proto. 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. |
|
/etc/services |
|
services database file |
|
BSD 4.3 |
|
getprotoent(3), getnetent(3), services(5) |