Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Portabilität

&pagelevel(3)&pagelevel

Anwender, die Programme schreiben wollen, die gemäß XPG4-Standard Version 2 portabel sind, müssen das Makro _XOPEN_SOURCE setzen und ebenfalls das Makro _XOPEN_SOURCE_EXTENDED auf den Wert 1. Auf diese Weise werden die vom XPG-Standard Version 2 geforderten und ausdrücklich zugelassenen Bezeichner sichtbar gemacht. Diese Makros müssen gesetzt werden, bevor die erste Include-Datei eingebunden wird. Dies kann entweder beim Übersetzungslauf durch Angabe der entsprechenden Compiler-Option erfolgen oder im Quellcode mit Hilfe von #define-Anweisungen.

XPG4 Version 2-definierte Bezeichner sind nur dann nicht definiert, wenn die #undef-Anweisung angegeben wird (siehe auch Abschnitt "Funktionen und Makros“). Diese #undef-Anweisungen müssen nach den #include-Anweisungen aufgerufen werden.

Wenn das Makro _XOPEN_SOURCE auf 500 gesetzt ist, werden nur die vom XPG4 Version 2-Standard ausdrücklich zugelassenen Bezeichner sichtbar gemacht. Das Makro _XOPEN_SOURCE_EXTENDED wird in dieser Konstellation ignoriert. Wird das Makro _XOPEN_SOURCE nicht auf den Wert 500 gesetzt, aber das Makro _XOPEN_SOURCE_EXTENDED auf 1, so sind nur die im erweiterten XPG4 Version 2-Standard enthaltenen Bezeichner sichtbar.

_XOPEN_SOURCE_EXTENDED kann beim Übersetzungslauf definiert werden. Um also maximale Portabilität zu unterstützen, sollte in Anwendungen sichergestellt werden, dass _XOPEN_SOURCE_EXTENDED auf 1 gesetzt ist, indem entweder eine Compileroption benutzt oder eine #define-Anweisung vor der ersten #include-Anweisung in den Quellcode eingetragen wird.

Anwendungen, die Funktionalität verwenden, die in diesem Handbuch als Erweiterung gekennzeichnet ist (markiert mit BS2000 oder Erweiterung), sind nicht streng XPG4 Version 2- oder ISO C-konform.

Um Programme zu schreiben, die gemäß XPG5-Standard portabel sind, muss das Makro _XOPEN_SOURCE auf den Wert 500 gesetzt werden. Das Makro _XOPEN_SOURCE_EXTENDED wird in dieser Konstellation ignoriert. In dieser Implementierung sind nicht alle im XPG5-Standard enthaltenen Funktionsgruppen und Include-Dateien realisiert (z.B. gibt es keine asynchrone Ein-/Ausgabe und keine Echtzeitfunktionen). Die entsprechenden Funktionstest-Makros sind in der Include-Datei <unistd.h> auf den Wert -1 gesetzt.