Scroll to navigation

feature_test_macros(7) Miscellaneous Information Manual feature_test_macros(7)

BEZEICHNUNG

feature_test_macros - Feature-Test-Makros

BESCHREIBUNG

Mit Feature-Test-Makros kann der Programmierer steuern, welche Definitionen aus System-Header-Dateien bei der Kompilierung eines Programms verwendet werden.

HINWEIS: Um wirksam zu sein, muss die Definition eines Feature-Test-Makros im Quelltext vor den #include-Anweisungen für die Header-Dateien stehen. Dies kann entweder im Kompilierbefehl (cc -DMACRO=value) oder durch die Definition des Makros innerhalb des Quellcodes vor dem Einlesen aller Header erreicht werden. Die Anforderung, dass das Makro definiert sein muss, bevor es in irgendwelche Header-Dateien eingebunden wird, existiert, da sich Header-Dateien ohne Einschränkungen gegenseitig einbinden dürfen. Daher kann beispielsweise in den nachfolgenden Zeilen die Definition des Makros _GNU_SOURCE keine Wirkung haben, da der Header <abc.h> selbst <xyz.h> einbindet (POSIX erlaubt dies explizit):


#include <abc.h>
#define _GNU_SOURCE
#include <xyz.h>

Einige Feature-Test-Makros helfen bei der Erstellung von portablen Anwendungen, indem sie die Verwendung nicht standardgemäßer Definitionen verhindern. Andere Makros können verwendet werden, um gezielt nicht standardisierte Definitionen, die sonst per Voreinstellung nicht verwendet werden, zu verwenden.

Die genauen Auswirkungen jedes der im Folgenden beschriebenen Feature-Test-Makros können Sie durch Auswertung der Header-Datei <features.h> ermitteln. Anmerkung: Applikationen müssen <features.h> nicht direkt einbinden; es ist im Gegenteil sogar unerwünscht. Siehe ANMERKUNGEN.

Spezifikation der Funktion-Test-Makro-Anforderungen in Handbuchseiten

Wenn eine Funktion die Definition eines Feature-Test-Makros erfordert, enthält die ÜBERSICHT einer Handbuchseit in der Regel einen Vermerk der folgenden Form (dieses Beispiel finden Sie in der Handbuchseite von acct(2)):

#include <unistd.h>

int acct(const char *filename);

Mit Glibc erforderliche Makros (siehe feature_test_macros(7)):

acct(): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)

Das || bedeutet, dass zwecks Ermittlung der Deklaration von acct(2) aus <unistd.h> eine der beiden folgenden Makro-Definitionen vor dem Einfügen jeglicher Header-Dateien erfolgen muss:


#define _BSD_SOURCE
#define _XOPEN_SOURCE        /* oder jeder Wert < 500 */

Alternativ können gleichwertige Definitionen in den Kompilierbefehl eingebettet werden:


cc -D_BSD_SOURCE
cc -D_XOPEN_SOURCE           # Oder jeder Wert < 500

Beachten Sie, dass einige Feature-Test-Makros standardmäßig definiert sind. Daher ist es nicht immer erforderlich, die in der ÜBERSICHT angegebenen Feature-Test-Makro(s) explizit anzugeben.

In wenigen Fällen verwenden Handbuchseiten eine Abkürzung für die Anforderungen der Feature-Test-Makros (dieses Beispiel stammt aus readahead(2)):

#define _GNU_SOURCE
#define _FILE_OFFSET_BITS 64
#include <fcntl.h>
ssize_t readahead(int fd, off_t *Versatz, size_t Zähler);

Dieses Format wird immer dann angewandt, wenn die Feature-Test-Makros sicherstellen, dass passende Funktionsdeklarationen sichtbar sind und die Makros nicht standardmäßig definiert werden.

Von Glibc »verstandene« Feature-Test-Makros

In den Absätzen weiter unten wird erläutert, wie Feature-Test-Makros in Glibc 2.x, x > 0, behandelt werden.

Zuerst eine Zusammenfassung einiger Details für den Ungeduldigen:

•
In modernem Quellcode müssen Sie höchstwahrscheinlich _POSIX_C_SOURCE (für Definitionen aus verschiedenen Versionen von POSIX.1), _XOPEN_SOURCE (für Definitionen aus verschiedenen Versionen von SUS), _GNU_SOURCE (für GNU- und/oder Linux-spezifischem Zeug) und _DEFAULT_SOURCE (für normalerweise standardmäßig bereitgestellte Definitionen) verwenden.
•
Bestimmte Makros sind mit Vorgabewerten definiert. Daher mag es nicht notwendig sein, sie explizit zu definieren, obwohl eine oder mehrere Makros in der ÜBERSICHT einer Handbuchseite als benötigt markiert sind. Die vollständigen Details der Vorgaben sind später in dieser Handbuchseite dargestellt.

Die Glibc »versteht« die folgenden Feature-Test-Makros:

__STRICT_ANSI__
ISO Standard C. Dieses Makro wird impliziert definiert, wenn gcc(1) beispielsweise mit den Schaltern -std=c99 oder -ansi aufgerufen wird.
_POSIX_C_SOURCE
Mit der Definition dieses Makros stellen Header-Dateien Definitionen bereit, die abhängig vom Wert die folgenden Standards erfüllen:
>= 1
POSIX.1-1990. POSIX.1-1990 impliziert ISO C90.
>= 2
POSIX.2-1992.
>= 199309L
POSIX.1b (Echtzeiterweiterungen).
199506L (seit Glibc 2.1)
POSIX.1c (Threads).
200112L (seit Glibc 2.3.3)
POSIX.1-2001 (ohne die XSI-Erweiterungen). POSIX.1-2001 impliziert ISO C99.
200809L (seit Glibc 2.10)
POSIX.1-2008 (ohne die XSI-Erweiterungen). POSIX.1-2008 impliziert ISO C99.
_POSIX_SOURCE [[missbilligt]]
gleichbedeutend mit -D_POSIX_C_SOURCE=1.
_XOPEN_SOURCE
Mit der Definition dieses Makros stellen Header-Dateien Definitionen bereit, die abhängig vom Wert die folgenden Standards erfüllen:
1
POSIX.1, POSIX.2, XPG4.
500
SUSv2 (Ausgabe 5).
600 (seit Glibc 2.2)
SUSv3 (Ausgabe 6). SUSv3 ist POSIX.1-2001 ergänzt um die XSI-Erweiterungen.
700 (seit Glibc 2.10)
SUSv4 (Ausgabe 7). SUSv4 ist POSIX.1-2008 ergänzt um die XSI-Erweiterungen.
_XOPEN_SOURCE_EXTENDED [[missbilligt]]
Mit der Definition dieses Makros stellen Header-Dateien Definitionen bereit, die SUSv1 erfüllen.
_ISOCxx_SOURCE
Mit der Definition eines dieses Makros stellen Header-Dateien Definitionen bereit, die die entsprechende Version der ISO-C-Norm erfüllen:
Diese sollten durch Programmierer nicht definiert werden. Stattdessen sollte die Sprachversion mit dem entsprechenden Compiler-Schalter angegeben werden.
_ISOC99_SOURCE (seit Glibc 2.1.3)
C99. Verwenden Sie stattdessen -std=c99 oder -std=gnu99.
_ISOC11_SOURCE (seit Glibc 2.16)
C11. Verwenden Sie stattdessen -std=c11 oder -std=gnu11.
_ISOC23_SOURCE (seit Glibc 2.40)
_ISOC2X_SOURCE (seit Glibc 2.31) [[missbilligt]]
C23. Verwenden Sie stattdessen -std=c23 oder -std=gnu23. Aktiviert Deklarationen, die mit der ISO-C23-Norm konsistent sind.
_LARGEFILE64_SOURCE [[missbilligt]]
Aktiviert Definitionen für das durch LFS (Large File Summit) definierte alternative API als »Übergangserweiterungen« zu der »Single UNIX Specification«. (Siehe http://opengroup.org/platform/lfs.html.) Das alternative API besteht aus einer Reihe von neuen Objekten (d.h. Funktionen und Typen), deren Namen mit »64« endet (z. B. off64_t versus off_t, lseek64() versus lseek(), usw.). Neue Programme sollten dieses Makro nicht verwenden, sondern _FILE_OFFSET_BITS=64 einsetzen.
_LARGEFILE_SOURCE [[missbilligt]]
Dieses Makro wurde traditionell verwandt, um bestimmte Funktionen (insbesondere fseeko(3) und ftello(3)) bereitzustellen, die sich um Beschränkungen älterer APIs (fseek(3) und ftell(3)) kümmerten, die long für Datei-Versätze verwandten. Diese Funktionen sind jetzt Teil von SUSv2; verwenden Sie stattdessen _XOPEN_SOURCE. Alternativ können Sie hierfür auch _FILE_OFFSET_BITS auf den Wert 64 definieren.
_FILE_OFFSET_BITS
Wird diesem Makro der Wert 64 zugewiesen, werden automatisch Verweise auf 32-Bit-Funktionen und -Datentypen für Datei-Ein/Ausgabe und Dateisystem-Operationen in Verweise auf ihre 64-Bit-Pendants konvertiert. Dies ist für die Ein-/Ausgabe in und aus großen Dateien (> 2 Gigabyte) auf 32-Bit-Systemen nützlich. Es ist auch beim Aufruf von Funktionen wie copy_file_range(2) nützlich, die in jüngerer Zeit hinzugefügt wurden und nur in 64-bit-Varianten existieren. (Mit der Definition dieses Makros können korrekt geschriebene Programme nach einer einfachen Neukompilierung große Dateien bearbeiten.)
64-Bit-Systeme erlauben natürlich Dateigrößen größer als 2 Gigabyte. Auf diesen Systemen dieses Makro hat keine Wirkung.
_TIME_BITS
Wird diesem Makro der Wert 64 zugewiesen, dann wird die Breite von time_t(3type) auf 64 bit geändert, was den Umgang mit Zeitstempeln jenseits von 2038 erlaubt. Dies ist eng mit _FILE_OFFSET_BITS verwandt und könnte, abhängig von der Implementierung, benötigen, dass dies gesetzt ist. Dieses Makro ist mit Glibc 2.34 verfügbar.
_BSD_SOURCE [[misbilligt]]
Mit der Definition dieses Makros mit irgend einem Wert stellen Header-Dateien BSD-abgeleitete Definitionen bereit.
In Glibc bis einschließlich 2.18 bewirkte die Definition dieses Makros auch, dass BSD-Definitionen in manchen Situationen vorgezogen werden, wenn sich Standards widersprechen. Sind aber eines oder mehrere Makros aus der Gruppe _SVID_SOURCE, _POSIX_SOURCE, _POSIX_C_SOURCE, _XOPEN_SOURCE, _XOPEN_SOURCE_EXTENDED oder _GNU_SOURCE definiert, werden BSD-Definitionen missachtet. Seit Glibc 2.19 führt _BSD_SOURCE nicht mehr dazu, dass BSD-Definitionen im Konfliktfall bevorzugt werden.
Seit Glibc 2.20 wird dieses Makro missbilligt. Es hat jetzt den gleichen Effekt wie die Definition von _DEFAULT_SOURCE, erzeugt aber eine Compiler-Warnung (außer _DEFAULT_SOURCE ist auch definiert). Verwenden Sie stattdessen _DEFAULT_SOURCE. Um Code zu erlauben, der bis Glibc 2.19 _BSD_SOURCE und _DEFAULT_SOURCE ab Glibc 2.20 benötigt, um ohne Warnung übersetzt zu werden, definieren Sie sowohl _BSD_SOURCE als auch _DEFAULT_SOURCE.
_SVID_SOURCE [[missbilligt]]
Die Definition dieses Makros mit einem beliebigen Wert veranlasst Header-Dateien zur Aktivierung von von System V abgeleiteten Definitionen. (SVID steht für System V Interface Definition; siehe standards(7).)
Dieses Makro wird in der gleichen Art wie _BSD_SOURCE seit Glibc 2.20 missbilligt.
_DEFAULT_SOURCE (seit Glibc 2.19)
Dieses Makro kann definiert werden, um sicherzustellen, dass die »Standarddefinitionen« bereitgestellt werden, selbst wenn die Vorgaben ansonsten deaktiviert würden. Dies passiert beispielsweise, wenn individuelle Makros explizit definiert sind oder der Compiler in einem seiner »Standardmodi« aufgerufen wird (z.B. cc -std=c99).
Die »Standard«-Definition umfasst die von POSIX.1-2008 und C99 umfassten sowie verschiedene ursprünglich aus BDS und System V abgeleitete Definitionen. Bis Glibc 2.19 waren diese Standardwerte ungefähr zu der folgenden, expliziten Definition identisch:

cc -D_BSD_SOURCE -D_SVID_SOURCE -D_POSIX_C_SOURCE=200809
    

_ATFILE_SOURCE (seit Glibc 2.4)
Die Definition dieses Makros mit einem beliebigen Wert veranlasst Header-Dateien zur Aktivierung einer Auswahl von Funktion mit der Endung »at«, siehe openat(2). Seit Glibc 2.10 wird dieses Makro auch implizit definiert, wenn _POSIX_C_SOURCE mit einem Wert größer oder gleich 200809L definiert ist.
_GNU_SOURCE
Die Definition dieses Makros (mit einem beliebigen Wert) definiert implizit _ATFILE_SOURCE, _LARGEFILE64_SOURCE, _ISOC99_SOURCE, _XOPEN_SOURCE_EXTENDED, _POSIX_SOURCE, _POSIX_C_SOURCE mit dem Wert 200809L (200112L vor Glibc 2.10; 199506L vor Glibc 2.5; 199309L vor Glibc 2.1) und _XOPEN_SOURCE mit dem Wert 700 (600 vor Glibc 2.10; 500 vor Glibc 2.2). Darüber hinaus werden verschiedene GNU-spezifische Erweiterungen aktiviert.
Seit Glibc 2.19 hat die Definition von _GNU_SOURCE auch den Effekt, _DEFAULT_SOURCE implizit zu definieren. Vor Glibc 2.20 hatte die Definition von _GNU_SOURCE auch den Effekt, _BSD_SOURCE und _SVID_SOURCE implizit zu definieren.
_REENTRANT [[misbilligt]]
Historisch war es bei verschiedenen C-Bibliotheken notwendig, dieses Makro in allem Code, der multithreaded ist, zu definieren. (Einige C-Bibliotheken könnten dies noch immer benötigen). Unter Glibc legte dieses Makro auch Definitionen von bestimmten, wiedereintrittsfähigen Funktionen offen.
Allerdings ist Glibc standardmäßig seit vielen Jahren Thread-sicher (seit Glibc 2.3). Der einzige Effekt der Definition von _REENTRANT war, dass sie auch eine oder zwei der gleichen Deklarationen aktivierte, die auch durch die Definition von _POSIX_C_SOURCE mit einem Wert von 199506L oder höher aktiviert werden.
_REENTRANT ist jetzt veraltet. Seit Glibc 2.25 ist die Definition von _REENTRANT äquivalent zur Definition von _POSIX_C_SOURCE mit dem Wert 199506L. Falls durch eine andere Methode eine höhere Konformitätsstufe (wie _POSIX_C_SOURCE selbst, _XOPEN_SOURCE, _DEFAULT_SOURCE oder _GNU_SOURCE) ausgewählt wird, hat die Definition von _REENTRANT keinen Effekt.
Dieses Makro wird automatisch definiert, falls mit cc -pthread kompiliert wird.
_THREAD_SAFE [[misbilligt]]
Synonym für _REENTRANT; wird für die Kompatibilität mit einigen anderen Implementierungen bereitgestellt.
_FORTIFY_SOURCE (seit Glibc 2.3.4)
Die Definition dieses Makros führt dazu, dass ein paar leichtgewichtige Prüfungen durchgeführt werden, um einige Pufferüberlauffehler beim Einsatz verschiedener Zeichenketten- und Speicherveränderungsfunktionen (beispielsweise bei memcpy(3), memset(3), stpcpy(3), strcpy(3), strncpy(3), strcat(3), strncat(3), sprintf(3), snprintf(3), vsprintf(3), vsnprintf(3), gets(3) und deren Weitzeichenvarianten) zu erkennen. Bei einigen Funktionen wird die Konsistenz der Argumente geprüft, beispielsweise dass bei open(2) ein Argument mode übergeben wurde, wenn die angegebenen Schalter O_CREAT enthalten. Es werden nicht alle Probleme sondern lediglich einige häufige Fälle erkannt.
Ist der Wert von _FORTIFY_SOURCE gleich 1 und die Compiler-Optimierungsstufe 1 (gcc -O1) oder höher, erfolgt eine Beschränkung auf Kontrollen, die das Verhalten standardkonformer Programme nicht ändern sollten. Wird _FORTIFY_SOURCE auf 2 gesetzt, werden ein paar Kontrollen hinzugefügt, die aber Fehler in einigen standardkonformen Programmen bewirken könnten.
Einige der Prüfungen können bei der Kompilierung ausgeführt werden (mittels in Header-Dateien implementierter Makrologik) und führen zu Compiler-Warnungen, andere Kontrollen finden zur Laufzeit statt und führen zu einem Laufzeitfehler, wenn die Überprüfung fehlschlägt.
Ist _FORTIFY_SOURCE auf 3 gesetzt, dann werden zusätzliche Überprüfungen hinzugefügt, um einige Funktionsaufrufe abzufangen, die mit einem Argument variabler Größe verwandt werden, bei denen der Compiler eine obere Grenze für ihren Wert ableiten kann. Beispielsweise kann ein Programm, bei denen das Größe-Argument von malloc(3) eine Variable ist, jetzt mit Fortify gesichert werden.
Die Verwendung dieses Makros benötigt Unterstützung vom Compiler, die seit GCC 4.0 und Clang 2.6 verfügbar ist. Die Verwendung von _FORTIFY_SOURCE gesetzt auf 3 benötigt GCC 12.0 oder neuer oder Clang 9.0 oder neuer, zusammen mit Glibc 2.33 oder neuer.

Standarddefinitionen, implizite Definitionen und Kombinationsdefinitionen

Ohne explizit definierte Feature-Test-Makros werden standardmäßig die folgenden Feature-Test-Makros definiert: _BSD_SOURCE (bis Glibc 2.19), _SVID_SOURCE (bis Glibc 2.19), _DEFAULT_SOURCE (seit Glibc 2.19), _POSIX_SOURCE und _POSIX_C_SOURCE=200809L (200112L vor Glibc 2.10; 199506L vor Glibc 2.4; 199309L vor Glibc 2.1).

Wenn eines von __STRICT_ANSI__, _ISOC99_SOURCE, _ISOC11_SOURCE (seit Glibc 2.18), _ISOC23_SOURCE (seit Glibc 2.40), _POSIX_SOURCE, _POSIX_C_SOURCE, _XOPEN_SOURCE, _XOPEN_SOURCE_EXTENDED (bis Glibc 2.11), _BSD_SOURCE (bis Glibc 2.19) oder _SVID_SOURCE (bis Glibc 2.19) explizit definiert ist, dann werden standardmäßig _BSD_SOURCE, _SVID_SOURCE und _DEFAULT_SOURCE nicht definiert.

STANDARDS

POSIX.1 legt _POSIX_C_SOURCE, _POSIX_SOURCE und _XOPEN_SOURCE fest.

_FILE_OFFSET_BITS kommt in keinem Standard vor, wird aber auf verschiedenen anderen Implementierungen verwendet.

_BSD_SOURCE, _SVID_SOURCE, _DEFAULT_SOURCE, _ATFILE_SOURCE, _GNU_SOURCE, _FORTIFY_SOURCE, _REENTRANT und _THREAD_SAFE sind Glibc-spezifisch.

GESCHICHTE

_XOPEN_SOURCE_EXTENDED wurde von XPG4v2 (auch bekannt als SUSv1) spezifiziert, ist aber seit SUSv2 vorhanden.

ANMERKUNGEN

<features.h> ist eine Linux/Glibc-spezifische Header-Datei. Andere Systeme verfügen über eine analoge Datei, die in der Regel einen anderen Namen trägt. Diese Header-Datei wird bei Bedarf automatisch durch andere Header-Dateien einbezogen: sie muss nicht explizit einbezogen werden, um Feature-Test-Makros zu verwenden.

Je nachdem, welche der oben genannten Feature-Test-Makros definiert sind, definiert <features.h> intern verschiedene weitere Makros, die von anderen Glibc-Header-Dateien überprüft werden. Die Namen dieser Makros beginnen mit zwei vorangestellten Unterstrichen (z. B. __USE_MISC). Programme sollten diese Makros nie direkt definieren: stattdessen sollten die passenden Feature-Test-Makro(s) aus der obigen Liste eingesetzt werden.

BEISPIELE

Mit dem folgenden Programm können Sie erkunden, wie die verschiedenen Feature-Test-Makros abhängig von der Glibc-Version und welche explizit gesetzt werden. Die folgende Shell-Sitzung auf einem System mit Glibc 2.10 zeigt einige Beispiele für mögliche Ausgaben:


$ cc ftm.c
$ ./a.out
_POSIX_SOURCE definiert
_POSIX_C_SOURCE definiert: 200809L
_BSD_SOURCE definiert
_SVID_SOURCE definiert
_ATFILE_SOURCE definiert
$ cc -D_XOPEN_SOURCE=500 ftm.c
$ ./a.out
_POSIX_SOURCE definiert
_POSIX_C_SOURCE definiert: 199506L
_XOPEN_SOURCE definiert: 500
$ cc -D_GNU_SOURCE ftm.c
$ ./a.out
_POSIX_SOURCE definiert
_POSIX_C_SOURCE definiert: 200809L
_ISOC99_SOURCE definiert
_XOPEN_SOURCE definiert: 700
_XOPEN_SOURCE_EXTENDED definiert
_LARGEFILE64_SOURCE definiert
_BSD_SOURCE definiert
_SVID_SOURCE definiert
_ATFILE_SOURCE definiert
_GNU_SOURCE definiert

Programmquelltext

/* ftm.c */
#include <stdint.h>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
int
main(int argc, char *argv[])
{
#ifdef _POSIX_SOURCE

printf("_POSIX_SOURCE ist definiert\n"); #endif #ifdef _POSIX_C_SOURCE
printf("_POSIX_C_SOURCE ist definiert: %jdL\n",
(intmax_t) _POSIX_C_SOURCE); #endif #ifdef _ISOC99_SOURCE
printf("_ISOC99_SOURCE ist definiert\n"); #endif #ifdef _ISOC11_SOURCE
printf("_ISOC11_SOURCE ist definiert\n"); #endif #ifdef _ISOC23_SOURCE
printf("_ISOC23_SOURCE ist definiert\n"); #endif #ifdef _XOPEN_SOURCE
printf("_XOPEN_SOURCE ist definiert: %d\n", _XOPEN_SOURCE); #endif #ifdef _XOPEN_SOURCE_EXTENDED
printf("_XOPEN_SOURCE_EXTENDED ist definiert\n"); #endif #ifdef _LARGEFILE64_SOURCE
printf("_LARGEFILE64_SOURCE ist definiert\n"); #endif #ifdef _FILE_OFFSET_BITS
printf("_FILE_OFFSET_BITS ist definiert: %d\n", _FILE_OFFSET_BITS); #endif #ifdef _TIME_BITS
printf("_TIME_BITS ist definiert: %d\n", _TIME_BITS); #endif #ifdef _BSD_SOURCE
printf("_BSD_SOURCE ist definiert\n"); #endif #ifdef _SVID_SOURCE
printf("_SVID_SOURCE ist definiert\n"); #endif #ifdef _DEFAULT_SOURCE
printf("_DEFAULT_SOURCE ist definiert\n"); #endif #ifdef _ATFILE_SOURCE
printf("_ATFILE_SOURCE ist definiert\n"); #endif #ifdef _GNU_SOURCE
printf("_GNU_SOURCE ist definiert\n"); #endif #ifdef _REENTRANT
printf("_REENTRANT ist definiert\n"); #endif #ifdef _THREAD_SAFE
printf("_THREAD_SAFE ist definiert\n"); #endif #ifdef _FORTIFY_SOURCE
printf("_FORTIFY_SOURCE ist definiert\n"); #endif
exit(EXIT_SUCCESS); }

SIEHE AUCH

libc(7), standards(7), system_data_types(7)

Der Abschnitt »Feature Test Macros« unter info libc.

/usr/include/features.h

ÜBERSETZUNG

Die deutsche Übersetzung dieser Handbuchseite wurde von Martin Eberhard Schauer <Martin.E.Schauer@gmx.de> und Helge Kreutzmann <debian@helgefjell.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 die Mailingliste der Übersetzer.

24. Juni 2026 Linux man-pages 6.20