getservent(3N) getservent(3N)
NAME
getservent, getservbyport, getservbyname, setservent, endservent -
Eintrag in Dienste-Datei ermitteln
SYNTAX
#include <netdb.h>
struct servent *getservent(void);
struct servent *getservbyname(const char *name, const char *proto);
struct servent *getservbyport(int port, const char *proto);
int setservent(int stayopen);
int endservent(void);
BESCHREIBUNG
getservent(), getservbyname() und getservbyport() liefern alle einen
Zeiger auf ein Objekt der unten beschriebenen Struktur zurück. Die
Struktur enthält Felder einer Zeile in der Netzdienste-Datei
/etc/inet/services.
struct servent {
char *sname; /* offizieller Name des Dienstes */
char **saliases; /* Alias-Liste */
int sport; /* Portnummer, an der der Dienst */
/* verfügbar ist */
char *sproto; /* zu verwendendes Protokoll */
};
Die Felder der Struktur sind:
sname Der offizielle Name des Dienstes.
saliases Eine mit Null endende Liste alternativer Namen für den
Dienst.
sport Die Portnummer, an dem der Dienst verfügbar ist. Port-
nummern werden in Netz-Byte-Anordnung zurückgeliefert.
sproto Der Name des Protokolls, das zu verwenden ist, wenn der
Dienst in Anspruch genommen wird.
getservent() liest den nächsten Eintrag der Datei und öffnet diese bei
Bedarf zuvor.
setservent() öffnet die Datei und setzt den Lesezeiger auf den Anfang.
Falls die Option stayopen nicht Null ist, wird die Datei nicht nach
jedem Aufruf von getservent() wieder geschlossen (weder direkt noch
indirekt durch weitere "getserv"-Aufrufe).
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
getservent(3N) getservent(3N)
endservent() schließt die Datei.
getservbyname() und getservbyport() durchsuchen die Datei von Anfang
an, bis ein passender Protokollname oder eine passende Portnummer
gefunden wurde, oder bis EOF erreicht wurde. Falls auch ein Protokoll-
name angegeben wurde (nicht NULL), muß bei der Suche auch der Proto-
kollname übereinstimmen.
DIAGNOSE
Bei einem Fehler oder bei Erreichen von EOF wird NULL zurückgeliefert.
Alle Information befindet sich in statischen Bereichen und muß somit
kopiert werden, wenn sie gesichert werden soll. Man sollte nicht vor-
aussetzen, daß die Portnummern in einen 32-Bit-Wert passen.
DATEIEN
/etc/inet/services
SIEHE AUCH
getprotoent(3N), services(4).
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98