getservbyname()

Updated: April 19, 2023

Get a service entry, given a name

Synopsis:

#include <netdb.h>

struct servent * getservbyname( const char * name,
                                const char * proto );

Arguments:

name
The name of the service whose entry you want to find.
proto
NULL, or the protocol for the service.

Library:

libsocket

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

Description:

The getservbyname() function gets the entry for the given name and protocol from the network services database, /etc/services. This function returns a pointer 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 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.

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.