Get a service entry, given a port
#include <netdb.h>
struct servent * getservbyport( int port,
const char * proto );
The getservbyport() function gets the entry for the given port from the services database, /etc/services. This function returns a pointer to a structure of type servent, which contains the broken-out fields of a line in the network services database.
The setservent() function opens and rewinds the file. If you pass a nonzero stayopen argument to setservent(), the services database isn't closed after each call to getservbyname() or getservbyport().
The getservbyport() function sequentially searches 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.
A valid pointer to a servent structure, or NULL if an error occurs.
| Safety: | |
|---|---|
| Cancellation point | Yes |
| Interrupt handler | No |
| Signal handler | No |
| Thread | No |
This function uses static data; if you need the data for future use, copy it before any subsequent calls overwrite it.