GETPROTOENT(3N)                                                GETPROTOENT(3N)


NAME
     getprotoent, getprotobynumber, getprotobyname, getprotoent_r,
     getprotobynumber_r, getprotobyname_r, fgetprotoent, fgetprotoent_r,
     setprotoent, endprotoent - get protocol entry

SYNOPSIS
     #include <netdb.h>

     struct protoent *getprotoent(void);

     struct protoent *getprotoent_r(struct protoent *entry, char *buffer, int buflen);

     struct protoent *getprotobyname(const char *name);

     struct protoent *getprotobyname_r(const char *name, struct protoent *entry, char *buffer, int buflen);

     struct protoent *getprotobynumber(int proto);

     struct protoent *getprotobynumber_r(int proto, struct protoent *entry, char *buffer, int buflen);

     struct protoent *fgetprotoent(FILE *f);

     struct protoent *fgetprotoent_r(FILE *f, struct protoent *entry, char *buffer, int buflen);

     void setprotoent(int stayopen);

     void endprotoent(void)

DESCRIPTION
     getprotoent, getprotobyname, and getprotobynumber each return a pointer
     to an object with the following structure containing the broken-out
     fields of a line in the network protocol data base file, /etc/protocols,
     or the NIS protocols map.

          struct    protoent {
               char *p_name;  /* official name of protocol */
               char **p_aliases;   /* alias list */
               int  p_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.

     Getprotoent reads the  next  line  of  the  file,  opening  the  file  if
     necessary.


     Setprotoent opens and rewinds the file.  If the  stayopen  flag  is  non-
     zero,  the  net  data  base  will  not  be  closed  after  each  call  to
     getprotobyname or getprotobynumber.

     Endprotoent closes the file.

     Getprotobyname  and  getprotobynumber  sequentially   search   from   the
     beginning  of  the file until a matching protocol name or protocol number
     is found, or until EOF is encountered.

     The primitives documented in this manual entry first  consult  Sun's  NIS
     distributed  lookup  service,  if  NIS  is  enabled,  and  then  the file
     /etc/protocols.

     getprotoent_r,  getprotobynumber_r  and  getprotobyname_r  are  reentrant
     versions of the corresponding function calls.

     fgetprotoent and fgetprotoent_r will read entries off of the passed  file
     handle.

NOTE
     The Mips ABI specifies nothing but local files so applications which wish
     to use anything else must compile with libc prior to libnsl in the
     library list.  When nsd is running changes to the local protocols file
     may not be noticed by getprotoent() until the enumeration cache file has
     timed out.

     The char buffer passed into the getprotoent functions must be aligned to
     a four byte boundary, otherwise the call will trigger a bus error.

DIAGNOSTICS
     All functions that return struct protoent * will return a null (0)
     pointer in the case of EOF or failure.

FILES
     /etc/protocols

SEE ALSO
     ypserv(1M), protocols(4)

DIAGNOSTICS
     Null pointer (0) returned on EOF or error.


                                                                        Page 2