The Open Group Base Specifications Issue 6
IEEE Std 1003.1, 2004 Edition
Copyright © 2001-2004 The IEEE and The Open Group, All Rights reserved.

#### 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>

#### CHANGE HISTORY

> First released in Issue 6. Derived from the XNS, Issue 5.2 specification.

End of informative text.

UNIX ® is a registered Trademark of The Open Group.
POSIX ® is a registered Trademark of The IEEE.
[ Main Index | XBD | XCU | XSH | XRAT ]