Man Linux: Main Page and Category List

NAME

       endservent,  getservbyname,  getservbyport,  getservent,  setservent  -
       network services database functions

SYNOPSIS

       #include <netdb.h>

       void endservent(void);
       struct servent *getservbyname(const char *name, const char *proto);
       struct servent *getservbyport(int port, const char *proto);
       struct servent *getservent(void);
       void setservent(int stayopen);

DESCRIPTION

       These functions shall  retrieve  information  about  network  services.
       This  information  is considered to be stored in a database that can be
       accessed sequentially or randomly. The implementation of this  database
       is unspecified.

       The  setservent() function shall open a connection to the database, and
       set the next entry to the first entry. If the stayopen argument is non-
       zero,  the  net  database  shall  not  be closed after each call to the
       getservent() function (either directly, or indirectly  through  one  of
       the other getserv*() functions), and the implementation may maintain an
       open file descriptor for the database.

       The getservent() function shall read the next entry  of  the  database,
       opening and closing a connection to the database as necessary.

       The  getservbyname()  function  shall  search  the  database  from  the
       beginning and find the first entry for which the service name specified
       by  name  matches  the s_name member and the protocol name specified by
       proto matches the s_proto member, opening and closing a  connection  to
       the database as necessary. If proto is a null pointer, any value of the
       s_proto member shall be matched.

       The  getservbyport()  function  shall  search  the  database  from  the
       beginning and find the first entry for which the port specified by port
       matches the s_port member and the  protocol  name  specified  by  proto
       matches  the  s_proto  member,  opening and closing a connection to the
       database as necessary. If proto is a null pointer,  any  value  of  the
       s_proto  member shall be matched. The port argument shall be in network
       byte order.

       The getservbyname(), getservbyport(), and getservent() functions  shall
       each  return  a  pointer  to  a servent structure, the members of which
       shall contain the fields of an entry in the network services  database.

       The  endservent() function shall close the database, releasing any open
       file descriptor.

       These functions need not be reentrant. A function that is not  required
       to be reentrant is not required to be thread-safe.

RETURN VALUE

       Upon   successful  completion,  getservbyname(),  getservbyport(),  and
       getservent() return a pointer to a servent structure if  the  requested
       entry  was  found,  and  a  null pointer if the end of the database was
       reached or the requested entry was not found. Otherwise, a null pointer
       is returned.

ERRORS

       No errors are defined.

       The following sections are informative.

EXAMPLES

       None.

APPLICATION USAGE

       The  port  argument  of getservbyport() need not be compatible with the
       port values of all address families.

       The getservbyname(), getservbyport(), and  getservent()  functions  may
       return  pointers to static data, which may be overwritten by subsequent
       calls to any of these functions.

RATIONALE

       None.

FUTURE DIRECTIONS

       None.

SEE ALSO

       endhostent() ,  endprotoent()  ,  htonl()  ,  inet_addr()  ,  the  Base
       Definitions volume of IEEE Std 1003.1-2001, <netdb.h>

COPYRIGHT

       Portions  of  this text are reprinted and reproduced in electronic form
       from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology
       --  Portable  Operating  System  Interface (POSIX), The Open Group Base
       Specifications Issue 6, Copyright (C) 2001-2003  by  the  Institute  of
       Electrical  and  Electronics  Engineers, Inc and The Open Group. In the
       event of any discrepancy between this version and the original IEEE and
       The  Open Group Standard, the original IEEE and The Open Group Standard
       is the referee document. The original Standard can be  obtained  online
       at http://www.opengroup.org/unix/online.html .