getprotoent() — Get the next protocol entry

Standards

Standards / Extensions C or C++ Dependencies

XPG4.2
Single UNIX Specification, Version 3

both  

Format

X/Open:
#define _XOPEN_SOURCE_EXTENDED 1
#include <netdb.h>

struct protoent *getprotoent(void);
Berkeley sockets:
#define _OE_SOCKETS
#include <netdb.h>

struct protoent *getprotoent(void);

General description

The getprotoent() call reads /etc/protocol or the tcpip.ETC.PROTO data set.

The getprotoent()> call returns a pointer to the next entry in the /etc/protocol or the tcpip.ETC.PROTO data set.

getprotobyname(), getprotobynumber(), and getprotoent() all use the same static area to return the protoent structure. This static area is only valid until the next one of these functions is called on the same thread.

The protoent structure is defined in the netdb.h include file and contains the following elements:
Element
Description
p_aliases
An array, terminated with a NULL pointer, of alternative names for the protocol.
p_name
The official name of the protocol.
p_proto
The protocol number.

Special behavior for C++: To use this function with C++, you must use the _XOPEN_SOURCE_EXTENDED 1 feature test macro.

Returned value

If successful, getprotoent() returns a pointer to a protoent structure. The return value points to data that is overwritten by subsequent calls returning the same data structure.

If unsuccessful, getprotoent() returns a NULL pointer, indicating an error or End Of File (EOF).

Related information