getnetent_r(3)

BEZEICHNUNG
getnetent_r, getnetbyname_r, getnetbyaddr_r - Netzwerkeintrag erhalten (reentrant)

BIBLIOTHEK
Standard-C-Bibliothek (libc, -lc)

ÜBERSICHT
#include <netdb.h>

int getnetent_r(struct netent *restrict Ergebnispuffer,
                char Puf[restrict .Puflän], size_t Puflän,
                struct netent **restrict Ergebnis,
                int *restrict h_Fehlernumz);
int getnetbyname_r(const char *restrict Name,
                struct netent *restrict Ergebnispuffer,
                char Puf[restrict .Puflän], size_t Puflän,
                struct netent **restrict Ergebnis,
                int *restrict h_Fehlernumz);
int getnetbyaddr_r(uint32_t net, int Typ,
                struct netent *restrict Ergebnispuffer,
                char Puf[restrict .Puflän], size_t Puflän,
                struct netent **restrict Ergebnis,
                int *restrict h_Fehlernumz);

    Mit Glibc erforderliche Feature-Test-Makros (siehe feature_test_macros(7)):

getnetent_r(), getnetbyname_r(), getnetbyaddr_r():
    Seit Glibc 2.19:
        _DEFAULT_SOURCE
    Glibc 2.19 und älter:
        _BSD_SOURCE || _SVID_SOURCE

BESCHREIBUNG
Die Funktionen getnetent_r(), getnetbyname_r() und getnetbyaddr_r() sind die reentranten Äquivalente von getnetent(3), getnetbyname(3) bzw. getnetbynumber(3). Sie unterscheiden sich in der Art, wie die Struktur netent zurückgeliefert wird und in der Funktionsaufrufsignatur und dem -Rückgabewert. Diese Handbuchseite beschreibt nur die Unterschiede zu den nicht reentranten Funktionen.

Anstatt einen Zeiger auf eine statisch reservierte Struktur netent als Funktionsergebnis zurückzuliefern, kopieren diese Funktionen die Struktur an einen Ort, auf den Ergebnispuffer zeigt.

Das Feld Puf wird zum Speichern der Zeichenkettenfelder verwandt, auf die die zurückgelieferte Struktur netent zeigt. (Die nicht reentranten Funktionen reservieren diese Zeichenketten in statischem Speicher.) Die Größe dieses Feldes wird in Puflän angegeben. Falls Puf zu klein ist, schlägt der Aufruf mit dem Fehler ERANGE fehl und der Aufrufende muss es mit einem größeren Puffer erneut versuchen. (Ein Puffer der Länge 1024 byte sollte für die meisten Anwendungen ausreichend sein.)

Falls der Funktionsaufruf erfolgreich einen Netzwerkdatensatz erhält, dann wird *Ergebnis so gesetzt, dass es auf Ergebnispuffer zeigt; andernfalls wird *Ergebnis auf NULL gesetzt.

Der Puffer, auf den h_Fehlernumz zeigt, wird dazu verwandt, den Wert zurückzuliefern, der in der globalen Variable h_errno durch die nicht reentranten Versionen dieser Funktionen gespeichert würde.

RÜCKGABEWERT
Bei Erfolg geben diese Funktionen Null zurück. Bei einem Fehler wird eine in FEHLER aufgeführte positive Zahl zurückgegeben.

Im Fehlerfall, »Datensatz nicht gefunden« (getnetbyname_r(), getnetbyaddr_r()) oder »Ende der Eingabe« (getnetent_r()), wird Ergebnis auf NULL gesetzt.

FEHLER

ENOENT
    (getnetent_r()) Keine weiteren Datensätze in der Datenbank.

ERANGE
    Puf ist zu klein. Versuchen Sie es mit einem größeren Puffer erneut (und vergrößern Sie Puflän).

ATTRIBUTE
Siehe attributes(7) für eine Erläuterung der in diesem Abschnitt verwandten Ausdrücke.
Schnittstelle | Attribut | Wert
getnetent_r(), getnetbyname_r(), getnetbyaddr_r() | Multithread-Fähigkeit | MT-Sicher locale

VERSIONEN
Funktionen mit ähnlichem Namen existieren auf einigen anderen Systemen, allerdings typischerweise mit anderen Aufrufsignaturen.

STANDARDS
GNU.

SIEHE AUCH
getnetent(3), networks(5)

ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann <debian@helgefjell.de> erstellt.

Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 (https://www.gnu.org/licenses/gpl-3.0.html) 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: debian-l10n-german@lists.debian.org.