Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ confstr(3C) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

pathconf(2)

sysconf(3C)

confstr(3C)                                                     confstr(3C)

NAME
     confstr - Konfigurierbare Variablen lesen

SYNTAX
     #include <unistd.h>

     sizet confstr(int name, char *buf, sizet len);

BESCHREIBUNG
     Mit der Funktion confstr() können Zeichenketten-Werte abgefragt wer-
     den, die von der Konfiguration definiert wurden. Verwendung und Zweck
     entsprechen der Funktion sysconf(), diese Funktion wird jedoch für
     Zeichenketten-Werte, und nicht für numerische Werte, verwendet.

     Eine Anwendung kann zwischen einem ungültigen Parameterwert für einen
     Namen und einem Namen unterscheiden, der einer konfigurierbaren Varia-
     blen ohne einen von der Konfiguration definierten Wert entspricht.
     Dazu wird abgefragt, ob errno modifiziert wurde. Dies entspricht dem
     Verhalten von sysconf().

     Ursprünglich wurde diese Funktion benötigt, um den von der Konfigura-
     tion definierten Standardwert für die Umgebungsvariable PATH abzufra-
     gen. Da der Benutzer PATH um Dateiverzeichnisse erweitern kann, die
     Dienstprogramme als Ersatz für XCU-Standarddienstprogramme enthalten
     können, müssen Anwendungen den Wert der vom System zur Verfügung
     gestellten Umgebungsvariablen PATH feststellen können, der den richti-
     gen Suchpfad für die Standarddienstprogramme enthält.

     Eine Anwendung könnte zum Beispiel

     confstr (name, (char *)NULL, (sizet) 0)

     dazu verwenden festzustellen, welche Puffergröße für den
     Zeichenketten-Wert benötigt wird, mit malloc() einen Puffer für die
     Zeichenkette zuweisen und dann wieder confstr() aufrufen, um die Zei-
     chenkette zu lesen. Es kann aber auch ein fester, statischer Puffer
     zugewiesen werden, der für die meisten Werte ausreichend groß ist (zum
     Beispiel 512 oder 1024 Byte). Anschließend kann mit malloc() für den
     Fall ein größerer Puffer zugewiesen werden, wenn dieser Puffer zu
     klein ist.

     Das Argument name steht für die Systemvariable, die abgefragt werden
     soll. Die Implementierung unterstützt den Wert CSPATH für name, der
     in unistd.h definiert ist.

     Wenn len ungleich Null ist und name einen von der Konfiguration defi-
     nierten Wert hat, kopiert confstr() diesen Wert in den Puffer mit len
     Byte, auf den buf zeigt. Wenn die zurückzugebende Zeichenkette mehr
     als len Byte hat (einschließlich abschließendem Nullbyte), so schnei-
     det confstr() die Zeichenkette auf len-1 Byte ab und fügt ein
     abschließendes Nullbyte an das Ergebnis an. Die Anwendung kann erken-
     nen, daß die Zeichenkette abgeschnitten wurde, wenn sie den von



Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

confstr(3C)                                                     confstr(3C)

     confstr() zurückgelieferten Wert mit len vergleicht.

     Wenn len gleich Null und buf ein Nullzeiger ist, gibt confstr() den
     Integer-Wert wie unten definiert zurück. Es wird aber keine Zeichen-
     kette zurückgegeben. Ist len gleich Null, aber buf kein Nullzeiger, so
     ist das Ergebnis nicht definiert.

     Die Funktion confstr() schlägt fehl, wenn:

     EINVAL    Der Wert des Arguments name ist ungültig.

ERGEBNIS
     Wenn name einen von der Konfiguration definierten Wert hat, gibt die
     Funktion confstr() die Puffergröße zurück, die für den gesamten, von
     der Konfiguration definierten Wert benötigt wird. Ist dieser Rückgabe-
     wert größer als len, wird die in buf zurückgelieferte Zeichenkette
     abgeschnitten.

     Wenn name ein ungültiger Wert ist, gibt confstr() Null zurück. Der
     Fehler wird in errno gesetzt.

     Wenn name keinen von der Konfiguration definierten Wert hat, gibt
     confstr() Null zurück. errno bleibt dann unverändert.

SIEHE AUCH
     pathconf(2), sysconf(3C).




























Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026