Originální popis anglicky: 
getprotoent, getprotobyname, getprotobynumber, setprotoent, endprotoent - get
  protocol entry
Návod, kniha: Linux Programmer's Manual
#include <netdb.h>
 
struct protoent *getprotoent(void);
 
struct protoent *getprotobyname(const char *name);
 
struct protoent *getprotobynumber(int proto);
 
void setprotoent(int stayopen);
 
void endprotoent(void);
The 
getprotoent() function reads the next line from the file
  
/etc/protocols and returns a structure 
protoent containing the
  broken out fields from the line. The 
/etc/protocols file is opened if
  necessary.
The 
getprotobyname() function returns a 
protoent structure for the
  line from 
/etc/protocols that matches the protocol name 
name.
The 
getprotobynumber() function returns a 
protoent structure for
  the line that matches the protocol number 
number.
The 
setprotoent() function opens and rewinds the 
/etc/protocols
  file. If 
stayopen is true (1), then the file will not be closed between
  calls to 
getprotobyname() or 
getprotobynumber().
The 
endprotoent() function closes 
/etc/protocols.
The 
protoent structure is defined in 
<netdb.h> as follows:
 
struct protoent {
	char	*p_name;		/* official protocol name */
	char	**p_aliases;		/* alias list */
	int	p_proto;		/* protocol number */
}
 
The members of the 
protoent structure are:
  - p_name
- The official name of the protocol.
  - p_aliases
- A zero terminated list of alternative names for the
      protocol.
  - p_proto
- The protocol number.
The 
getprotoent(), 
getprotobyname() and 
getprotobynumber()
  functions return the 
protoent structure, or a NULL pointer if an error
  occurs or the end of the file is reached.
  - /etc/protocols
- protocol database file
BSD 4.3
getnetent(3), 
getservent(3), 
protocols(5)