getservbyport()

Updated: April 19, 2023

Get a service entry, given a port

Synopsis:

#include <netdb.h>

struct servent * getservbyport( int port,
                                const char * proto );

Arguments:

port
The port number for the service.
proto
NULL, or the protocol for the service.

Library:

libsocket

Use the -l socket option to qcc to link against this library.

Description:

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.

Returns:

A valid pointer to a servent structure, or NULL if an error occurs.

Files:

/etc/services
Network services database file.

Classification:

POSIX 1003.1

Safety:  
Cancellation point Yes
Interrupt handler No
Signal handler No
Thread No

Caveats:

This function uses static data; if you need the data for future use, copy it before any subsequent calls overwrite it.