getservbyname

Deklaration

#include <netdb.h>

struct servent *getservbyname(const char *name, const char *proto);

Beschreibung

Mit getservbyname() lassen sich Dienst-Namen wie etwa "ftp" in Portnummern auflösen. Dazu wird der Name und optional das Protokoll vorgegeben und eine Struktur servent zurückgegeben.

struct servent {
        char  *s_name;       /* official service name */
        char **s_aliases;    /* alias list */
        int    s_port;       /* port number */
        char  *s_proto;      /* protocol to use */
};

Die Elemente haben dabei folgende Bedeutung:

s_name Der offizielle Name des Dienstes. Dieser kann von dem Namen abweichen, nach dem gefragt wurde.
s_aliases Eine Liste weiterer Namen des Dienstes, terminiert durch einen Nullzeiger.
h_port Portnummer des Dienstes in Network Byte Order.
s_proto Name des Protokolls, mit dem der Dienst erreicht werden kann.

Unter UNIX wird für gewöhnlich die Datenbank aus /etc/services zu Rate gezogen.

Parameter

name Name des gesuchten Dienstes
proto Name des gewünschten Protokolls. Wird hier NULL angegeben, dann wird der erste passende Eintrag zurückgeliefert.

Rückgabewert

Zeiger auf eine Struktur servent, im Fehlerfall NULL. Zurückgegeben wird ein Zeiger auf statischen Speicher, der für weitere Umwandlungen benutzt wird. Daher muss der Aufrufer eine Kopie anlegen, wenn die Daten auch nach weiteren Aufrufe von getservbyname() zur Verfügung stehen sollen.

Typische Fehler


Zurück