Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

protocols(5)

svc.conf(5)

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
 

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026