The database that keeps track of “well-known” services is usually
either the file /etc/services or an equivalent from a name server.
You can use these utilities, declared in netdb.h, to access
the services database.
— Data Type: struct servent
This data type holds information about entries from the services database.
It has the following members:
This is the “official” name of the service.
These are alternate names for the service, represented as an array of
strings. A null pointer terminates the array.
This is the port number for the service. Port numbers are given in
network byte order; see Byte Order.
To get information about a particular service, use the
getservbyname or getservbyport functions. The information
is returned in a statically-allocated structure; you must copy the
information if you need to save it across calls.
The getservbyport function returns information about the
service at port port using protocol proto. If it can't
find such a service, it returns a null pointer.
You can also scan the services database using setservent,
getservent and endservent. Be careful when using these
functions because they are not reentrant.
— Function: void setservent (int stayopen)
This function opens the services database to begin scanning it.
If the stayopen argument is nonzero, this sets a flag so that
subsequent calls to getservbyname or getservbyport will
not close the database (as they usually would). This makes for more
efficiency if you call those functions several times, by avoiding
reopening the database for each call.
— Function: struct servent * getservent (void)
This function returns the next entry in the services database. If
there are no more entries, it returns a null pointer.
— Function: void endservent (void)
This function closes the services database.
Published under the terms of the GNU General Public License