getservent, getservbyname, getservbyport, setservent, endservent - bestimmt
dienstspezifischen Datenbankeintrag
Standard-C-Bibliothek (
libc,
-lc)
#include <netdb.h>
struct servent *getservent(void);
struct servent *getservbyname(const char *name, const char *proto);
struct servent *getservbyport(int port, const char *proto);
void setservent(int offenhalten);
void endservent(void);
Die Funktion
getservent() liest den nächsten Eintrag aus der
Dienste-Datenbank (Services Database, siehe
services(5)) und gibt eine
Struktur
servent zurück, welche die Felder des Eintrags
enthält. Wenn notwendig, wird eine Verbindung zur Datenbank
hergestellt.
Die Funktion
getservbyname() gibt eine Struktur
servent mit dem
Datenbank-Eintrag für den Dienst
name zurück, der das
Protokoll
proto benutzt. Falls
proto NULL ist, passt es auf
jedes Protokoll. Wenn notwendig, wird eine Verbindung zur Datenbank
hergestellt.
Die Funktion
getservbyport() gibt eine Struktur
servent mit dem
Datenbank-Eintrag für das Protokoll
proto auf dem
port
zurück. (Der Port ist in Netzwerk-Byte-Ordnung angegeben). Falls
proto NULL ist, passt es auf jedes Protokoll. Wenn notwendig, wird eine
Verbindung zur Datenbank hergestellt.
Die Funktion
setservent() baut eine Datenbankverbindung auf und zeigt auf
deren ersten Eintrag. Wenn
offenhalten ungleich Null ist, wird die
Verbindung zwischen Aufrufen der
getserv*()-Funktionen nicht
geschlossen.
Die Funktion
endservent() beendet die Datenbankverbindung.
Die Struktur
servent ist in
<netdb.h> wie folgt definiert:
struct servent {
char *s_name; /* offizieller Dienstname */
char **s_aliases; /* Aliasliste */
int s_port; /* Portnummer */
char *s_proto; /* zu benutzendes Protokoll */
}
Die Struktur
servent besteht aus den folgenden Elementen:
- s_name
- der offizielle Name der Dienstes
- s_aliases
- eine mit Nullbyte abgeschlossene Liste von alternativen
Namen für den Dienst
- s_port
- die Portnummer des Dienstes (in Netzwerk-Byte-Ordnung)
- s_proto
- Das Protokoll, das mit diesem Dienst anzuwenden ist.
Die Funktionen
getservent(),
getservbyname() und
getservbyport() geben einen Zeiger auf eine statisch zugewiesene
Struktur
servent zurück. Tritt ein Fehler auf oder ist das
Dateiende erreicht, wird NULL zurückgegeben.
- /etc/services
- Dienste-Datenbankdatei
Siehe
attributes(7) für eine Erläuterung der in diesem
Abschnitt verwandten Ausdrücke.
Schnittstelle |
Attribut |
Wert |
getservent() |
Multithread-Fähigkeit |
MT-Unsafe race:servent race:serventbuf locale |
getservbyname() |
Multithread-Fähigkeit |
MT-Unsafe race:servbyname locale |
getservbyport() |
Multithread-Fähigkeit |
MT-Unsafe race:servbyport locale |
setservent(), endservent() |
Multithread-Fähigkeit |
MT-Unsafe race:servent locale |
In der obigen Tabelle bedeutet
servent in
race:servent, dass,
falls eine der Funktionen
setservent(),
getservent() oder
endservent() in verschiedenen Threads eines Programms parallel verwandt
werden, konkurrierende Zugriffe auf Daten (»data races«)
auftreten könnten.
POSIX.1-2001, POSIX.1-2008, 4.3BSD.
getnetent(3),
getprotoent(3),
getservent_r(3),
services(5)
Die deutsche Übersetzung dieser Handbuchseite wurde von Patrick Rother
<
[email protected]>, Martin Eberhard Schauer <
[email protected]>
und Dr. Tobias Quathamer <
[email protected]> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die
GNU
General Public License Version 3 oder neuer bezüglich der
Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken
Sie bitte eine E-Mail an die
Mailingliste
der Übersetzer