Die Gnu C Bibliothek: Selektion nach
Merkmalen
Im glibc gibt es einen Satz Selektion nach
Merkmalenmakros, die verwendet werden, um vorzuwählen, dem Standards
Sie glibc wünschen, um übereinzustimmen mit. Standards
widersprechen manchmal und also erlaubt glibc Ihnen, genau
vorzuwählen, das von den Standards (formal, de Jure und formloses, de
Facto) mit denen einstellte, um einzuwilligen, völlig oder teilweise.
Diese Makros werden technisch Eigenschaft Testmakros genannt.
Sie müssen diese Makros berücksichtigen, weil die
Rückstellung, die von den definierten Makros eingestellt wird, nicht
die ganze Funktionalität von glibc liefert. Einige Einheiten
sind nicht mit dem vorgewählten Rückstellung Eigenschaft Satz
vorhanden; wir dokumentieren die erforderlichen Eigenschaft
Makros, um jede dieser Einheiten zu benutzen.
Die Eigenschaft Testmakros sind entworfen, um mit, welchen
Standards (de Jure oder de Facto) und in einigen Fällen genau, denen
zu spezifizieren Versionen jener Standards, glibc einwilligen sollten.
Diese Befolgung schließt häufig das Definieren nicht von von
Funktionen und von von Makros über ein, was hinaus durch einen
Standard für Include-Dateien spezifiziert wird, die selbst durch
Standard die definiert werden. Das bedeutet, daß eine
Anwendung, die geschrieben wird, um sich mit einem Standard
anzupassen, seine eigenen Funktionen und Makros definieren kann, ohne
mit den Verlängerungen zu widersprechen, die nicht durch Standard die
definiert werden.
Die Eigenschaft Testmakros garantieren nicht, daß Ihre
Anwendung mit dem Satz der Standards völlig kompatibel ist, die durch
den Satz von Makros spezifiziert werden, die Sie definieren. Die
Einstellung der Eigenschaft Testmakros kann etwas Gebrauch von
nonportable Verlängerungen finden, aber es zeigt nicht z.B. Gebrauch
der Include-Dateien, die durch den Standard völlig nicht spezifiziert
sind.
Die Makros werden in der System Include-Datei feature.h
definiert, die Sie nicht direkt mit einschließen sollten.
Stattdessen schließen alle weiteren Include-Dateien, die durch
den Inhalt von feature.h beeinflußt werden konnten, es mit ein.
Der Rückstellung Satz von Eigenschaft Makros, wenn keine
definiert werden, ist _ SVID_SOURCE=1, _bsd_source=1, _posix_source=1
und _ POSIX_C_SOURCE=199506L. Jede Wahl wird ausführlicher
unten beschrieben, aber diese übersetzt im Wesentlichen in
"Unterstützung die Fähigkeiten des 1995 POSIX Standards, alle
Standardsystem V Eigenschaften und alle Bd Eigenschaften, die
widersprechen nicht mit System V Eigenschaften." Dieser
Rückstellung Satz Eigenschaft Makros genügt für die meisten
Programme.
Wenn Sie GCC geben - ANSI Wahl, definiert sie automatisch
das interne __ STRICT_ANSI __ Makro, das alle Rückstellung
Eigenschaft Makros abstellt.
Mit Ausnahme von dem __ STRICT_ANSI __ Makro das speziell
ist (und das nur durch den Compiler im Kontext von eingestellt werden
sollte - ANSI Befehl Linie Wahl), sind diese Eigenschaft Makros
kumulativ; Sie können jede mögliche Kombination von ihnen
definieren. Die genaue Definition von _ BSD_SOURCE ändert
abhängig von, welchem andere Eigenschaft Makros eingestellt werden
(wie unten dokumentiert); der Rest sind lediglich kumulativ.
Einige der Eigenschaft Testmakros werden durch
verschiedene Versionen von POSIX oder von anderen Standards definiert,
sind einige in der Industrie allgemein, und andere werden
ausschließlich auf glibc begrenzt.
| _ POSIX_SOURCE |
Wenn dieses Makro definiert wird, werden alle
Schnittstellen, die als Teil der ursprünglichen Spezifikation POSIX.1
definiert werden, zur Verfügung gestellt. |
| |
Dieses Makro wurde durch den ursprünglichen Standard
POSIX.1-1990 definiert. |
| _ POSIX_C_SOURCE |
Dieses Makro ersetzt _ POSIX_SOURCE. Wenn es bis 1
eingestellt wird, ist es mit _ POSIX_SOURCE gleichwertig. Wenn
es > = 2 ist, dann schließt es auch die C Schnittstellen ein, die von
POSIX.2, einschließlich regelmäßige Ausdrücke definiert werden.
Wenn es > = 199309L ist, dann schließt es auch die
zusätzlichen C Schnittstellen ein, die in der Neuausgabe 1993 von
POSIX, besonders einschließlich die weiche Realzeitfunktionalität
definiert werden; wenn es > = 199506L (die Rückstellung) ist,
schließt es auch die zusätzlichen C Schnittstellen ein, die in der
Neuausgabe 1995 von POSIX, besonders einschließlich POSIX definiert
werden, verlegt. Dieses Makro wurde durch Versionen von POSIX
definiert, das nach 1990 freigegeben wurde, um Unterstützung für
verschiedene Versionen der POSIX (und jetzt auch einzelner Unix)
Standards zu unterscheiden. Es wird groß durch _ XOPEN_SOURCE
ersetzt. |
| _ XOPEN_SOURCE |
Das _ XOPEN_SOURCE Makro wird durch den XSI Teil des
einzelnen Unix Standards definiert und einen logischen Superset der
Schnittstellen definiert, die durch _ POSIX_C_SOURCE eingeschlossen
sind. Es wurde auch von XPG definiert. Wenn es an allen
definiert wird, ist Unterseite-Niveau Übereinstimmung mit XPG4
(Unix95) enthalten. Wenn sie als 500 definiert wird, dann
Unterseite-Niveau Übereinstimmung mit XPG5 (Unix98, SuS Version 2)
ist enthalten. Wenn sie als 600 definiert wird, ist
Unterseite-Niveau Übereinstimmung mit IEEE Std 1003.1-2003 (das
kombinierte POSIX und SuS Dokument) enthalten. |
| _ ISOC99_SOURCE |
Dieses Eigenschaft Testmakro exportiert die
Schnittstellen, die durch den neuen ISO/IEC C99 Standard definiert
werden. |
| _ SVID_SOURCE |
Dieses Eigenschaft Testmakro stellt die Funktionalität
zur Verfügung, die durch die System V Schnittstellendefinition (SVID)
spezifiziert wird. Dieses deutet nicht an, daß glibc eine
komplette Implementierung des SVID Standards liefert; es stellt
bloß die SVID-spezifizierte Funktionalität heraus, die im glibc
besteht. |
| _ BSD_SOURCE |
Bd Eigenschaften können mit anderen Eigenschaften
widersprechen, und die Konflikte werden immer zugunsten System Vor des
Standard-gefälligen Verhaltens behoben, wenn irgendein POSIX, X/Open
oder System V Eigenschaft Makro definiert wird oder so—das einzige Eigenschaft Makro andeuteten, das erlaubt,
daß Bd Verhalten ist _ ISOC99_SOURCE erklärt wird. (die genaue
Definition dieses Eigenschaft Testmakros hat von Zeit zu Zeit
geändert und kann wieder ändern, da sie nicht durch irgendwie
Standard. spezifiziert wird) |
| _ GNU_SOURCE |
_ schaltet GNU_SOURCE alles möglich ein und bevorzugt
System V Schnittstellen zu den Bd Schnittstellen in den Fällen vom
Konflikt. Es addiert auch irgendeinen GNU- und Linux-spezifische
Schnittstellen, wie Akte mietet. |
Wenn der Standardsatz von Eigenschaft Testmakros nicht
genügt, sind die am allgemeinsten nützlichen zu definieren
Eigenschaft Makros _ GNU_SOURCE (Umdrehung alles auf—der
einfachsten Lösung), _ XOPEN_SOURCE=600 (die meisten Sachen sind Sie
wahrscheinlich, sich ungefähr zu interessieren, eine Teilmenge _
GNU_SOURCE) oder _ ISOC99_SOURCE (Gebraucheigenschaften vom neuesten C
Standard, von einer Teilmenge _ XOPEN_SOURCE=600).
dieses ist ein Artikel, der von Humberto Mitchson
hinzugefügt wird
Verzicht: Unsere Web site ist
nicht zu der Information verantwortlich, die durch diesen Artikel
enthalten wird. Dieser Artikel reflektiert keineswegs die
Ansichten, die Meinungen, die Gedanken oder den Glauben des
Artikelverzeichnisstabes.
Übersetzung Nachricht: Der Artikel "die
GNU C Bibliothek: Selektion nach Merkmalen "wurde mit einem
automatisierten Übersetzungsdienst übersetzt. Wir
entschuldigen herzlichst uns für alle mögliche Übersetzung
Störungen, die auftraten. Danke für das Verstehen.