getprotoent(3n)
Name
getprotoent, getprotobynumber, getprotobyname, setprotoent, endprotoent − get protocols entry
Syntax
#include <netdb.h>
struct protoent *getprotoent()
struct protoent *getprotobyname(name)
char *name;
struct protoent *getprotobynumber(proto)
int proto;
void setprotoent(stayopen)
int stayopen;
void endprotoent()
Description
The getprotoent, getprotobyname, and getprotobynumber subroutines each return a pointer to an object with the following structure containing the broken-out fields of a line in the protocols database.
structprotoent {
char*p_name;/* official name of protocol */
char**p_aliases;/* alias list */
longp_proto;/* protocol number */
};
The members of this structure are:
p_name The official name of the protocol.
p_aliases A zero terminated list of alternate names for the protocol.
p_proto The protocol number.
If the stayopen flag on a setprotoent subroutine is NULL, the protocols database is opened. Otherwise the setprotoent has the effect of rewinding the protocols database. The endprotoent may be called to close the protocols database when processing is complete.
The getprotoent subroutine simply reads the next line while getprotobyname and getprotobynumber search until a matching name or proto number is found (or until EOF is encountered). The getprotoent subroutine keeps a pointer in the database, allowing successive calls to be used to search the entire file.
A call to setprotoent must be made before a while loop using getprotoent in order to perform initialization and an endprotoent must be used after the loop. Both getprotobyname and getprotobynumber make calls to setprotoent and endprotoent.
Restrictions
All information is contained in a static area so it must be copied if it is to be saved. Only the Internet protocols are currently understood.
If YP is running, getprotoent does not return the entries in any particular order. See the Guide to the Yellow Pages Service for setup information.
The services database may also be distributed using the BIND/Hesiod naming service. See the Guide to the BIND/Hesiod Service for more information.
Return Values
Null pointer (0) returned on EOF or error.
Files
/etc/protocols
See Also
protocols(5), svc.conf(5)
Guide to the BIND/Hesiod Service
Guide to the Yellow Pages Service