#include <netdb.h>
Kernighan-Ritchie-C:
struct servent *getservbyname(name, proto);
char *name;
char *proto;
struct servent *getservbyport(port, proto);
int port;
char *proto;
ANSI-C:
struct servent* getservbyname(char* name, char* proto);
struct servent* getservbyport(int port, char* proto)
Beschreibung
Die Verwendung der Funktionen getservbyname() und getservbyport() ist nur in den Adressfamilien AF_INET und AF_INET6 sinnvoll.
getservbyname() und getservbyport() liefern Informationen über die verfügbaren Services aus der Services-Datei mit dem Standardnamen SYSDAT.BCAM.ETC.SERVICES, die von BCAM verwaltetet wird
(siehe Handbuch „BCAM Band 1/2“).
Beide Funktionen liefern einen Zeiger auf ein Objekt der nachfolgend beschriebenen Struktur servent.
getservbyname() liefert in dem servent-Objekt die zum Service-Namen name und zum Protokoll proto gehörende Portnummer. Wird proto mit NULL angegeben, werden der Service-Name und die Portnummer des ersten in der Liste gefundenen Protokolls ausgegeben.
getservbyport() liefert in dem servent-Objekt den zur Portnummer nummer und zum Protokoll proto gehörenden Service-Namen, sowie die maximal vier möglichen eingetragenen Aliasnamen. Wird proto mit NULL angegeben, werden der Service-Name und die Aliasnamen des ersten in der Liste gefundenen Protokolls für die angegebene Portnummer ausgegeben.
Die Struktur servent ist in <netdb.h> wie folgt deklariert:
struct servent { char *s_name; /* Name des Service */ char **s_aliases; /* Alias-Liste */ int s_port; /* Nummer des Ports, auf dem der Service liegt */ char *s_proto; /* verwendetes Protokoll */ };
Beschreibung der servent-Komponenten:
s_name
Name des Service
s_aliases
Eine durch Null abgeschlossene Liste mit alternativen Namen für den Service
s_port
Portnummer, die dem Service zugeordnet ist. Portnummern werden in Netz-Byte-Reihenfolge zurückgeliefert.
s_proto
Name des Protokolls, das verwendet werden muss, um den Service anzusprechen.
Sofern ein Protokollname (nicht NULL) angegeben ist, suchen getservbyname() und getservbyport() nach dem Service, der das passende Protokoll verwendet.
Returnwert
Zeiger auf ein Objekt vom Typ struct servent. Im Fehlerfall wird der Null-Zeiger zurückgeliefert.
Hinweis
Die Informationen des zurückgelieferten servent-Objekts befinden sich in einem statischen Bereich. Die Informationen müssen somit kopiert werden, wenn sie gesichert werden sollen.