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.
- 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 Bytes. Muss mindestens 1 sein. (Einige
Systeme benutzen stattdessen PAGE_SIZE.)
- 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
Hilfprogramm 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 für die Reihenfolge LC_COLLATE 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
-
- _SC_NPROCESSORS_ONLN
- die Anzahl der Prozessoren, die derzeit online (verfügbar)
sind
RÜCKGABEWERT¶
Wenn
name ungültig ist, wird -1 zurückgegeben und
errno wird auf
EINVAL gesetzt. Andernfalls ist der
zurückgegebene Wert, der Wert der Systemressource und
errno
bleibt unverändert. Im Fall von Optionen wird ein positiver Wert
zurückgegeben, wenn eine abgefragte Option verfügbar ist und -1,
wenn nicht. Im Fall von Begrenzungen bedeutet -1, dass dort keine
Beschränkung definiert wurde.
POSIX.1-2001.
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 3.74 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
http://www.kernel.org/doc/man-pages/.
ÜBERSETZUNG¶
Die deutsche Übersetzung dieser Handbuchseite wurde von Patrick Rother
<krd@gulu.net> und Chris Leick <c.leick@vollbio.de> 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 <debian-l10n-german@lists.debian.org>.