hesiod_getservbyname man page
hesiod_getservbyname, hesiod_free_servent — Hesiod functions for retrieving service information
#include <hesiod.h> struct servent *hesiod_getservbyname(void *context, const char *name, const char *proto) void hesiod_free_servent(void *context, struct servent *serv) cc file.c -lhesiod
This family of functions allows you to retrieve service to port mappings using Hesiod. To perform lookups, you need an initialized Hesiod context; see hesiod(3) for details. Information is returned in the same format as by getservbyname. It is the caller's responsibility to call hesiod_free_servent with the returned service entry to free the resources used by the service entry.
Hesiod queries for service information are made using the “service” Hesiod type, using the service name as the Hesiod name. The corresponding records should be space-separated lists of strings giving the service name, protocol, port number (in decimal), and zero or more aliases for the service. There may be multiple records per service name; hesiod_getservbyname will pick the first one whose protocol matches proto.
On failure, hesiod_getservbyname returns NULL and sets the global variable errno to indicate the error.
hesiod_getservbyname may fail for any of the reasons the routine hesiod_resolve may fail.
The man page hesiod_free_servent(3) is an alias of hesiod_getservbyname(3).