Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

getprotoent(), getprotobynumber(), getprotobyname(), setprotoent(), endprotoent() - Informationen über Protokolle abfragen

&pagelevel(4)&pagelevel

#include <netdb.h>

struct protoent *getprotoent(void);
struct protoent *getprotobyname(const char *name);
struct protoent *getprotobynumber(int proto);
void setprotoent(int stayopen);
void endprotoent(void);

Beschreibung

Die Funktionen getprotobyname(), getprotobynumber() und getprotoent() liefern Informationen über die verfügbaren Services. Diese Funktionen greifen auf die Datei /etc/inet/protocols zu. Die Schnittstelle wird aus Kompatibilitätsgründen angeboten. Der Inhalt der Datei ist in EBCDIC kodiert.

Die Funktionen getprotobyname(), getprotobynumber() und getprotoent() liefern einen Zeiger auf ein Objekt der nachfolgend beschriebenen Struktur protoent zurück.

Die Struktur protoent entspricht den Feldern einer Zeile der Protokoll-Datenbasis /etc/inet/protocols und ist wie folgt deklariert:

struct protoent {
   char *p_name;           /* offizieller Name des Protokolls*/
   char **p_aliases;       /* Alias-Liste */
   int p_proto;            /* Protokollnummer */
};

Komponenten der Struktur protoent:

p_nameName des Protokolls.
p_aliasesEine durch null abgeschlossene Liste mit alternativen Namen für das Protokoll.
p_protoNummer des Protokolls.

getprotoent() liest die nächste Zeile der Datei. Wenn nötig, öffnet getprotoent() vorher die Datei.

setprotoent() öffnet die Datei und setzt sie auf den Anfang zurück. Wenn das Flag stayopen ungleich null ist, wird die Datenbasis nach keinem Aufruf von getprotoent() geschlossen (weder direkt noch indirekt durch einen der anderen getproto...()-Aufrufe).

endprotoent() schließt die Datei.

getprotobyname() und getprotobynumber() durchsuchen die Datei sequenziell von Anfang an, bis

  • ein passender Protokollname gefunden ist oder

  • die passende Protokollnummer gefunden ist oder

  • das Ende der Datei erreicht ist.

Returnwert

Erreicht die Suche das Ende der Datei, so wird der Null-Zeiger zurückgeliefert.

Hinweis

Alle Informationen befinden sich in einem statischen Bereich. Die Informationen müssen somit kopiert werden, wenn sie gesichert werden sollen.

Datei

/etc/inet/protocols