The getprotoent() call reads the hlq.ETC.PROTO data set, and the getprotoent() call returns a pointer to the next entry in the hlq.ETC.PROTO data set.
#include <manifest.h>
#include <netdb.h>
struct protoent *getprotoent()
The return value points to static data that is overwritten by subsequent calls. A pointer to a protoent structure indicates success. A NULL pointer indicates an error or end-of-file. When a NULL pointer or 0 is returned, the value of errno is indeterminate, and therefore, the output from a tcperror() call cannot be validated.
endprotoent(), getprotobyname(), getprotobynumber(), setprotoent()