sysconf

SYSCONF(3)                  Linux-Programmierhandbuch                 SYSCONF(3)



BEZEICHNUNG
       sysconf - Konfigurationsinformationen zur Laufzeit abfragen

ÜBERSICHT
       #include <unistd.h>

       long sysconf(int name);

BESCHREIBUNG
       POSIX erlaubt es einer Anwendung zur Kompilier- oder Laufzeit zu testen,
       ob bestimmte Optionen unterstützt werden oder wie der Wert bestimmter
       konfigurierbarer Konstanten oder Beschränkungen ist.

       Zur Kompilierzeit wird dies durch Einbinden von <unistd.h> und/oder
       <limits.h> und Testen des Wertes durch bestimmte Makros erledigt.

       Zur Laufzeit können numerische Werte durch die vorhandene Funktion
       sysconf() abgefragt werden. Vom Dateisystem, auf dem sich eine Datei
       befindet, abhängige Werte können mittels fpathconf(3) und pathconf(3)
       abgefragt werden. Zeichenkettenwerte können mittels confstr(3) abgefragt
       werden.

       Die Werte, die diese Funktionen zurückgeben, sind
       Systemkonfigurations-Konstanten. Sie ändern sich während der Lebensdauer
       eines Prozesses nicht.

       Für jede optionale Funktionalität gibt es typischerweise eine Konstante
       _POSIX_FOO, die in <unistd.h> definiert würde. Wenn sie nicht definiert
       ist, sollte zur Laufzeit nachgefragt werden. Wenn sie als -1 definiert
       ist, wird die Funktionalität nicht unterstützt. Wenn sie als 0 definiert
       ist, existieren die notwendigen Funktionen und Header, aber es muss zur
       Laufzeit nachgefragt werden, wie weit die Option unterstützt wird. Wenn
       sie definiert und nicht 0 oder -1 ist, wird die Option unterstützt.
       Üblicherweise gibt der Wert (z.B. 200112L) das Jahr und den Monat der
       POSIX-Überarbeitung an, die diese Option hinzufügte. Glibc benutzt dem
       Wert 1, um die Unterstützung anzuzeigen, solange die POSIX-Überarbeitung
       noch nicht veröffentlicht wurde. Das sysconf()-Argument wird _SC_FOO
       sein. Eine Liste der Optionen finden die unter posixoptions(7).

       Für Variablen oder Begrenzungen gibt es typischerweise eine Konstante
       _FOO, die in <limits.h> definiert würde, oder _POSIX_FOO, die
       möglicherweise in <unistd.h> definiert wurde. Die Konstante ist nicht
       definiert, wenn keine Begrenzung angegeben wurde. Falls die Konstante
       definiert ist, gibt es einen garantierten Wert, es könnte aber
       tatsächlich ein größerer unterstützt werden. Falls eine Anwendung Werte
       nutzen möchte, die sich zwischen Systemen ändern könnten, kann sysconf()
       aufgerufen werden. Das sysconf()-Argument wird _SC_FOO sein.

   POSIX.1-Variablen
       Es werden der Name der Variable, der Name des sysconf()-Arguments, das
       zum Abfragen ihres Wertes benutzt wird und eine kurze Beschreibung
       angegeben.

       Zuerst die POSIX.1-kompatiblen Werte:

       ARG_MAX - _SC_ARG_MAX
              die maximale Länge von Argumenten für die Funktionsfamilie
              exec(3). Darf nicht weniger als _POSIX_ARG_MAX (4096) sein.

       CHILD_MAX - _SC_CHILD_MAX
              die maximale Anzahl von simultanen Prozessen pro Benutzerkennung.
              Muss mindestens _POSIX_CHILD_MAX (25) sein.

       HOST_NAME_MAX - _SC_HOST_NAME_MAX
              maximale Länge des Rechnernamens, ausschließlich des
              abschließenden Null-Bytes, wie er von gethostname(2) zurückgegeben
              wird. Muss mindestens _POSIX_HOST_NAME_MAX (255) sein.

       LOGIN_NAME_MAX - _SC_LOGIN_NAME_MAX
              maximale Länge des Anmeldenamens, einschließlich des
              abschließenden Null-Bytes. Muss mindestens _POSIX_LOGIN_NAME_MAX
              (9) sein.

       NGROUPS_MAX - _SC_NGROUPS_MAX
              maximale Anzahl zusätzlicher Gruppenkennungen.

       Takte - _SC_CLK_TCK
              die Anzahl der Takte pro Sekunde. Die zugehörige Variable ist
              veraltet. Sie wurde sicherlich CLK_TCK genannt. (Beachten Sie: Das
              Makro CLOCKS_PER_SEC gibt keinen Hinweis. Es muss 1000000 sein.)

       OPEN_MAX - _SC_OPEN_MAX
              die maximale Anzahl von Dateien, die ein Prozess gleichzeitig
              geöffnet haben kann. Muss mindestens _POSIX_OPEN_MAX (20) sein.

       PAGESIZE - _SC_PAGESIZE
              Größe einer Seite in Byte. Muss mindestens 1 sein.

       PAGE_SIZE - _SC_PAGE_SIZE
              Ein Synonym für PAGESIZE/_SC_PAGESIZE. (Sowohl PAGESIZE als auch
              PAGE_SIZE sind in POSIX spezifiziert.)

       RE_DUP_MAX - _SC_RE_DUP_MAX
              maximale von regexec(3) und regcomp(3) erlaubte
              Wiederholungsanzahl in einem gewöhnlichen regulären Ausdruck. Muss
              mindestens _POSIX2_RE_DUP_MAX (255) sein.

       STREAM_MAX - _SC_STREAM_MAX
              die maximale Anzahl von Datenströmen, die ein Prozess gleichzeitig
              geöffnet haben kann. Falls es definiert ist, hat es den gleichen
              Wert wie das Standard-C-Makro FOPEN_MAX. Muss mindestens
              _POSIX_STREAM_MAX (8) sein.

       SYMLOOP_MAX - _SC_SYMLOOP_MAX
              die maximale Anzahl symbolischer Links an, bevor die Auflösung
              eines Pfadnamens ELOOP zurückgibt. Muss mindestens
              _POSIX_SYMLOOP_MAX (8) sein.

       TTY_NAME_MAX - _SC_TTY_NAME_MAX
              die maximale Länge von Terminal-Gerätenamen einschließlich des
              abschließenden NULL-Bytes. Muss mindestens _POSIX_TTY_NAME_MAX (9)
              sein.

       TZNAME_MAX - _SC_TZNAME_MAX
              die maximale Anzahl von Bytes eines Zeitzonennamens. Muss
              mindestens _POSIX_TZNAME_MAX (6) sein.

       _POSIX_VERSION - _SC_VERSION
              zeigt Jahr und Monat, zu dem der Standard POSIX.1 festgesetzt
              wurde, im Format YYYYMML an; der Wert 199009L zeigt die
              Überarbeitung vom September 1990 an.

   POSIX.2-Variablen
       Als nächstes die POSIX.2-Werte, die Begrenzungen für Hilfswerkzeuge
       angeben:

       BC_BASE_MAX - _SC_BC_BASE_MAX
              zeigt den maximalen Wert für obase an, der von dem Hilfsprogramm
              bc(1) akzeptiert wird.

       BC_DIM_MAX - _SC_BC_DIM_MAX
              zeigt den maximalen Wert von Elementen an, die in einem Feld von
              bc(1) zugelassen sind.

       BC_SCALE_MAX - _SC_BC_SCALE_MAX
              zeigt den maximalen Wert für scale an, der für bc(1) erlaubt ist.

       BC_STRING_MAX - _SC_BC_STRING_MAX
              zeigt die maximale Länge einer Zeichenkette an, die von bc(1)
              akzeptiert wird.

       COLL_WEIGHTS_MAX - _SC_COLL_WEIGHTS_MAX
              zeigt die maximale Anzahl von Gewichtungen, die einem Eintrag des
              Schlüsselworts LC_COLLATE order in der Lokale-Definitionsdatei
              zugewiesen werden können.

       EXPR_NEST_MAX - _SC_EXPR_NEST_MAX
              ist die maximale Anzahl von Ausdrücken, die bei expr(1) durch
              Klammern eingeschlossen werden dürfen.

       LINE_MAX - _SC_LINE_MAX
              die maximale Länge der Eingabezeile eines Hilfsprogramms, entweder
              von der Standardeingabe oder aus einer Datei. Dies schließt den
              Platz für einen folgenden Zeilenumbruch ein.

       RE_DUP_MAX - _SC_RE_DUP_MAX
              die maximale Anzahl wiederholten Auftretens von regulären
              Ausdrücken, wenn Intervallschreibweise \{m,n\} benutzt wird.

       POSIX2_VERSION - _SC_2_VERSION
              zeigt die Version des Standards POSIX.2 im Format YYYYMML an.

       POSIX2_C_DEV - _SC_2_C_DEV
              zeigt an, ob die POSIX.2-C-Sprachentwicklungseinrichtungen
              unterstützt werden.

       POSIX2_FORT_DEV - _SC_2_FORT_DEV
              zeigt an, ob die POSIX.2-FORTRAN-Entwicklungshilfsprogramme
              unterstützt werden.

       POSIX2_FORT_RUN - _SC_2_FORT_RUN
              zeigt an, ob die POSIX.2-FORTRAN-Laufzeithilfsprogramme
              unterstützt werden.

       _POSIX2_LOCALEDEF - _SC_2_LOCALEDEF
              zeigt an, ob die POSIX.2-Erzeugung von Locales mittels
              localedef(1) unterstützt wird.

       POSIX2_SW_DEV - _SC_2_SW_DEV
              zeigt an, ob die POSIX.2-Softwareentwicklungs-Hilfsprogrammoption
              unterstützt wird.

       Diese Werte existieren auch, sind möglicherweise aber kein Standard:

       _SC_PHYS_PAGES
              die Anzahl physischer Speicherseiten. Beachten Sie, dass es
              möglich ist, dass das Produkt dieses Wertes und des Werts von
              _SC_PAGESIZE überlaufen kann.

        - _SC_AVPHYS_PAGES
              die Anzahl derzeit verfügbarer physischer Speicherseiten.

        - _SC_NPROCESSORS_CONF
              die Anzahl konfigurierter Prozessoren. Siehe auch
              get_nprocs_conf(3).

        - _SC_NPROCESSORS_ONLN
              die Anzahl der Prozessoren, die derzeit online (verfügbar) sind.
              Siehe auch get_nprocs_conf(3).

RÜCKGABEWERT
       Der Rückgabewert von sysconf() ist einer der Folgenden:

       *  Bei Fehlern wird -1 zurückgeliefert und errno gesetzt, um den Grund
          des Fehlers anzuzeigen (beispielsweise EINVAL, um anzuzeigen, dass der
          name ungültig ist).

       *  Falls name einer Maximal- oder Minimalgrenze entspricht und diese
          Grenze unbestimmt ist, wird -1 zurückgeliefert und errno nicht
          geändert. (Um eine unbestimmte Grenze von einem Fehler zu
          unterscheiden, setzen Sie errno vor dem Aufruf auf Null und prüfen
          dann, ob errno von Null verschieden ist, wenn -1 zurückgeliefert
          wird.)

       *  Falls name einer Option entspricht, wird ein positiver Wert
          zurückgeliefert, falls die Option unterstützt wird und -1, falls die
          Option nicht unterstützt wird.

       *  Andernfalls wird der aktuelle Wert der Option oder Grenze
          zurückgeliefert. Dieser Wert ist nicht eingeschränkter als der
          entsprechende Wert, der der Anwendung in <unistd.h> oder <limits.h>
          beschrieben wurde, als die Anwendung übersetzt wurde.

FEHLER
       EINVAL name ist ungültig.

ATTRIBUTE
       Siehe attributes(7) für eine Erläuterung der in diesem Abschnitt
       verwandten Ausdrücke.

       ┌──────────────┬───────────────────────┬─────────────┐
       │Schnittstelle Attribut              Wert        │
       ├──────────────┼───────────────────────┼─────────────┤
       │sysconf()     │ Multithread-Fähigkeit │ MT-Safe env │
       └──────────────┴───────────────────────┴─────────────┘
KONFORM ZU
       POSIX.1-2001, POSIX.1-2008.

FEHLER
       Es ist schwierig ARG_MAX zu benutzen, da unbekannt ist, wie viel des
       Argumentbereichs für exec(3) von den Umgebungsvariablen des Benutzers
       belegt wird.

       Einige zurückgegebene Werte könnten riesig sein; sie sind nicht geeignet,
       um Speicher zu reservieren.

SIEHE AUCH
       bc(1), expr(1), getconf(1), locale(1), confstr(3), fpathconf(3),
       pathconf(3), posixoptions(7)

KOLOPHON
       Diese Seite ist Teil der Veröffentlichung 5.10 des Projekts
       Linux-man-pages. Eine Beschreibung des Projekts, Informationen, wie
       Fehler gemeldet werden können sowie die aktuelle Version dieser Seite
       finden sich unter https://www.kernel.org/doc/man-pages/.


ÜBERSETZUNG
       Die deutsche Übersetzung dieser Handbuchseite wurde von Patrick Rother
       <krd@gulu.net>, Chris Leick <c.leick@vollbio.de> und 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⟩.



GNU                                9. Mai 2019                        SYSCONF(3)