man -k XPG4
révèle qu'il ya une page de manuel standards(5)
, qui énumère les macros de test de fonctionnalité et d'information reliant la bibliothèque pour diverses normes, dont les suivantes:
X/Open CAE Pour construire ou compiler une application est conforme à l'une des spécifications XE Open XE Open, utilisez les directives suivantes. Les applications n'ont pas besoin de définir les macros de test de fonctionnalité POSIX si elles nécessitent à la fois les fonctionnalités CAE et POSIX.
SUS (XPG4v2)
The application must define _XOPEN_SOURCE with a value
other than 500 (preferably 1) and set
_XOPEN_SOURCE_EXTENDED=1.
Grepping par /usr/include
pour _XOPEN_SOURCE
tourne plus d'informations en /usr/include/sys/feature_tests.h
:
écrivains d'application qui souhaitent utiliser toutes les fonctions spécifiées comme X/Open UNIX Extension doit définir _XOPEN_SOURCE
et _XOPEN_SOURCE_EXTENDED=1
. La macro interne Sun _XPG4_2
ne doit pas être utilisée à sa place car des résultats inattendus peuvent se produire.
Donc définir _XPG4_2
n'est pas la façon de le faire.
Si des définitions de structure dépendent de ces macros, il est préférable de les définir dans toutes les unités de traduction. Le moyen le plus simple est de les spécifier sur la ligne de commande du compilateur:
cc -D_XOPEN_SOURCE=1 -D_XOPEN_SOURCE_EXTENDED=1
Si vous utilisez make
, vous devriez être en mesure de le faire en ajoutant les -D
paramètres à la variable CFLAGS
:
CFLAGS += -D_XOPEN_SOURCE=1 -D_XOPEN_SOURCE_EXTENDED=1