getservbyname_r Subroutine
Purpose
Gets service entry by name.
Library
Standard C Library (libc.a)
Syntax
#include <netdb.h>
int getservbyname_r(name, proto, servent, serv_data)
const char *Name, proto;
struct servent *servent;
struct servent_data *serv_data;
Description
Requirement: Use the getservbyname subroutine
instead of the getservbyname_r subroutine. The getservbyname_r subroutine
is compatible only with earlier versions of AIX®.
An application program can use the getservbyname_r subroutine to access a service, service aliases, the protocol for the service, and a protocol port number for the service.
The getservbyname_r subroutine
searches the /etc/services file sequentially from the start
of the file until it finds one of the following:
- Matching name and protocol number.
- Matching name when the Protocol parameter is set to 0.
- End of the file.
Use the endservent_r subroutine to close the /etc/hosts file.
You must fill the servent_data structure with zeros before its first access by either the setservent_r or the getservbyname_r subroutine.
Parameters
Item | Description |
---|---|
name | Specifies the name of a service. |
proto | Specifies a protocol for use with the specified service. |
servent | Points to the servent structure. |
serv_data | Points to the serv_data structure. |
Return Values
The
function returns a 0 if successful and a -1 if unsuccessful. The getservbyname subroutine
returns a pointer to a servent structure when a successful match occurs.
Entries in this structure are in network byte order.
Note: If an error
occurs or the end of the file is reached, the getservbyname_r returns
a -1.
Files
Item | Description |
---|---|
/etc/services | Contains service names. |