FTM
Section : Manuel du programmeur Linux (
7)
Mise à jour de la version anglaise : 26 avril 2006
Index
Menu principal
NOM
ftm - Macros de test de fonctionnalités.
SYNOPSIS
#include <features.h>
DESCRIPTION
Les macros de test de fonctionnalités permettent au programmeur de contrôler
les définitions qui seront exposées par les fichiers d'en-têtes système
lorsqu'un programme est compilé.
Cela est utile pour la création d'applications portables, en empêchant les
définitions non-standards d'être exposées.
D'autres macros peuvent être utilisées pour exposer des définitions
non-standards qui ne le sont pas par défaut.
Les effets précis de chacune de ces macros de test de fonctionnalités
décrites plus loin peuvent être constatés en inspectant le fichier d'en-tête
<features.h>.
Pour quelle soit effective, une macro de test de fonctionnalités
doit être définie avant l'inclusion de tout autre fichier d'en-tête.
Cela peut être fait soit dans la commande de compilation
(cc -DMACRO=valeur),
soit en définissant la macro dans le code source avant d'inclure les en-têtes.
Linux/glibc reconnait les macros de test de fonctionnalités suivantes :
- _POSIX_C_SOURCE
-
Définir cette macro avec une valeur de 1 fait que les fichiers d'en-têtes
exposeront les définitions conformes à POSIX.1-1990 et ISO C (1990).
Définir cette macro avec une valeur de 199309 ou plus exposera en plus
les définitions pour POSIX.1b (extensions temps réel).
Définir cette macro avec une valeur de 199506 ou plus exposera en plus
les définitions pour POSIX.1c (threads).
Définir cette macro avec une valeur de 200112 exposera les définitions
correspondant à la spécification de base de POSIX.1-2001 (excluant
l'extension XSI).
- _POSIX_C_SOURCE
-
Définir cette macro obsolète avec n'importe quelle valeur est équivalent
à définir
_POSIX_C_SOURCE
à une valeur de 1.
- _XOPEN_SOURCE
-
Définir cette macro avec n'importe quelle valeur fera que les fichiers
d'en-têtes exposeront les définitions conformes à POSIX.1, POSIX.2 et XPG4.
La définir avec la valeur 500 ou plus exposera en plus les définitions pour
SUSv2 (UNIX 98).
La définir avec la valeur 500 ou plus exposera en plus les définitions pour
SUSv3 (UNIX 03 ; c'est-à-dire, la spécification de base POSIX.1 plus
l'extension XSI) et les définitions C 99.
- _XOPEN_SOURCE_EXTENDED
-
Si cette macro est définie avec la valeur 1 et que
_XOPEN_SOURCE
est définie, cela exposera les définitions correspondant aux extensions
UNIX XPG4v2.
- _ISOC99_SOURCE
-
Exposer les extensions C99 de ISO C (1990).
- _LARGEFILE64_SOURCE
-
Exposer les définitions pour l'API alternative spécifiée par
LFS (Large File Summit) comme une « extention transitionnelle » les
« Single UNIX Specification ».
- _FILE_OFFSET_BITS
-
Définir cette macro avec la valeur 64 convertira automatiquement les
références aux fonctions 32 bits et aux types de données relatives aux
entrées-sorties de fichiers et aux opérations sur le système de fichiers
en leurs équivalents 64 bits.
Cela est utile pour effectuer des entrées-sorties sur de gros fichiers
(> 2 Gigaoctets) sur des systèmes 32 bits.
- _BSD_SOURCE
-
Définir cette macro avec n'importe quelle valeur fera que les fichiers
d'en-têtes exposeront les définitions dérivées de BSD.
Définir cette macro fera aussi que les définitions BSD seront préférées
dans les situations où les normes sont en conflit.
- _SVID_SOURCE
-
Définir cette macro avec n'importe quelle valeur fera que les fichiers
d'en-têtes exposeront les définitions dérivées de Système V.
(SVID == System V Interface Definition.)
- _GNU_SOURCE
-
Définir cette macro avec n'importe quelle valeur est équivalent à définir
_BSD_SOURCE,
_SVID_SOURCE,
_LARGEFILE64_SOURCE,
_ISOC99_SOURCE
_POSIX_C_SOURCE
avec la valeur 1999506
et
_XOPEN_SOURCE
avec la valeur 600.
De plus, diverses extensions spécifiques GNU seront également exposées.
Lorsque
gcc(1)
est invoqué, les macros suivantes sont définies par défaut :
_BSD_SOURCE,
_SVID_SOURCE,
_POSIX_SOURCE
et
POSIX_C_SOURCE=199506.
Si des macros individuelles sont définies, les autres macros sont désactivées
à moins d'être explicitement définies. (Exception : si
POSIX_C_SOURCE
n'est pas définie autrement, elle est toujours définie avec la valeur 199506,
à moins que le compilateur ne soit invoqué dans l'un de ces modes standards,
par exemple avec l'option
-std=c99.)
Plusieurs macros peuvent être définies ; les résultats s'additionnent.
CONFORMITÉ
POSIX.1 spécifie
_POSIX_C_SOURCE,
_POSIX_SOURCE
et
_XOPEN_SOURCE.
_XOPEN_SOURCE_EXTENDED
était spécifiée par XPG4v2 (aka SUSv1).
_FILE_OFFSET_BITS
n'est spécifiée par aucune norme mais est employée dans quelques autres
implémentations.
_BSD_SOURCE,
_SVID_SOURCE
et
_GNU_SOURCE
sont spécifiques à Linux (glibc).
NOTES
<features.h>
est un fichier d'en-tête spécifique à Linux/glibc.
D'autres systèmes ont un fichier analogue mais avec un nom différent.
Ce fichier d'en-tête est automatiquement inclus par d'autres fichiers d'en-têtes
comme nécessaire : il n'est donc pas nécessaire de l'inclure explicitement
pour pouvoir utiliser les macros de test de fonctionnalités.
TRADUCTION
Ce document est une traduction réalisée par Alain Portal
<aportal AT univ-montp2 DOT fr> le 4 août 2006.
L'équipe de traduction a fait le maximum pour réaliser une adaptation
française de qualité. La version anglaise la plus à jour de ce document est
toujours consultable via la commande : « LANG=C man 7 ftm ».
N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute
erreur dans cette page de manuel.
Index
- NOM
-
- SYNOPSIS
-
- DESCRIPTION
-
- CONFORMITÉ
-
- NOTES
-
- TRADUCTION
-
Dernière mise à jour : 24 octobre 2007