Chapter Contents |
Previous |
Next |
getservent |
Portability: | UNIX compatible |
SYNOPSIS | |
DESCRIPTION | |
RETURN VALUE | |
CAUTION | |
PORTABILITY | |
IMPLEMENTATION | |
EXAMPLE | |
RELATED FUNCTIONS |
SYNOPSIS |
#include <netdb.h> struct servent *getservent(void);
DESCRIPTION |
getservent
returns a pointer to the next sequential entry in the services
file, that is, a file with the same format as the
/etc/services
file on a UNIX operating system. Refer to <netdb.h> for details on the
servent
structure.
Refer to Search Logic for information on the logic used to determine the location of the services file.
RETURN VALUE |
If
getservent
succeeds, it returns a pointer to the
servent
structure. A null pointer indicates an
error or an end-of-file.
CAUTION |
The value that
getservent
returns points to a static structure within the library.
You must copy the information from this structure before you make further
getservbyname
,
getservbyport
, or
getservent
calls.
PORTABILITY |
getservent
is portable to other environments, including most UNIX systems,
that implement BSD sockets.
IMPLEMENTATION |
getservent
is ported directly from the BSD UNIX Socket Library.
EXAMPLE |
This program demonstrates the socket calls:
endservent
,
getservent
, and
setservent
. GETSENT attempts to open a prefix.ETC.SERVICES
file to obtain local configuration data; where prefix is described
in Network Administration.
#include <stdlib.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <netdb.h> #include <stdio.h> main(int argc, char *argv[]) { struct servent *serv; if (argc < 3) { puts("Incorrect parameters. Use:"); puts(" gsbnm service-name protocol-name"); return EXIT_FAILURE; } /* getservbyname() - opens the etc.services file and returns the */ /* values for the requested service and protocol. */ serv = getservbyname(argv[1], argv[2]); if (serv == NULL) { printf("Service "%s" not found for protocol "%s"\n", argv[1], argv[2]); return EXIT_FAILURE; } /* Print it. */ printf("Name: %-15s Port: %5d Protocol: %-6s\n", serv->s_name,ntohs(serv->s_port),serv->s_proto); return EXIT_SUCCESS; }
RELATED FUNCTIONS |
endservent
,
setservent
,
getservbyname
,
getservbyport
Chapter Contents |
Previous |
Next |
Top of Page |
Copyright © 2001 by SAS Institute Inc., Cary, NC, USA. All rights reserved.