feature_test_macros | Début | Suivant | Sommaire | Préc.page.lue | Accueil |
NOM | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
SYNOPSIS | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
#include <features.h>
DESCRIPTION | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
Pour quelle soit effective, une macro de test de fonctionnalité doit être définie avant l'inclusion de tout autre fichier d'entê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 entêtes.
Spécification d'exigences de macros de test de fonctionnalités dans les pages de manuels | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
#include <sys/stat.h>
int chmod(const char *path, mode_t mode);
int fchmod(int fd, mode_t mode);
Exigences de macros de test de fonctionnalités pour la glibc (voir feature_test_macros(7)):
fchmod(): _BSD_SOURCE || _XOPEN_SOURCE >= 500
Le || signifie que pour obtenir la déclaration de means that in order to obtain the declaration of fchmod(2) à partir de <sys/stat.h>, l'une des définitions de macro suivantes doit être faite avant d'inclure tout fichier d'entêtes :
#define _BSD_SOURCE #define _XOPEN_SOURCE 500 /* Ou toute valeur > 500 */
De manière alternative, des définitions équivalentes peuvent être incluses sur la ligne de commande de compilation :
cc -D_BSD_SOURCE cc -D_XOPEN_SOURCE=500 # Ou toute valeur > 500
Veuillez noter que, comme décrit plus loin, certaines macros de test de fonctionnalités sont définies par défaut, aussi, il n'est pas toujours nécessaire de spécifier explicitement la (les) macro(s) de test de fonctionnalités indiquée(s) dans le SYNOPSIS.
Dans quelques cas, les pages de manuel utilisent un raccourci pour exprimer les exigences de macros de tests de fonctionnalité (cet exemple est extrait de la page readahead(2)):
#define _GNU_SOURCE #include <fcntl.h> ssize_t readahead(int fd, off64_t *offset, size_t count);
Ce format est utilisé dans les cas où une seule macro de test de fonctionnalité est utilisée pour exposer la déclaration de la fonction, et que la macro n'est pas définie par défaut.
Macros de test de fonctionnalités reconnues par la glibc | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
La glibc Linux reconnait les macros de test de fonctionnalités suivantes :
Définitions par défaut, définitions implicites et combinaison de définitions | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
Si aucune macro de test de fonctionnalités n'est explicitement définie, les macros suivantes sont définies par défaut : _BSD_SOURCE, _SVID_SOURCE, _POSIX_SOURCE et _POSIX_C_SOURCE=200112L. (199506L dans les versions de la glibc avant 2.4)
Si l'une parmi __STRICT_ANSI__, _ISOC99_SOURCE, _POSIX_SOURCE, _POSIX_C_SOURCE, _XOPEN_SOURCE, _XOPEN_SOURCE_EXTENDED, _BSD_SOURCE ou _SVID_SOURCE est explicitement définie, _BSD_SOURCE, et _SVID_SOURCE ne sont pas définies par défaut.
SI _POSIX_SOURCE et _POSIX_C_SOURCE ne sont pas explicitement définies, et si __STRICT_ANSI__ ou _XOPEN_SOURCE n'est pas définie avec une valeur de 500 ou plus, alors
Plusieurs macros peuvent être définies ; les résultats s'additionnent.
CONFORMITÉ | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
_BSD_SOURCE, _SVID_SOURCE, _GNU_SOURCE, _FORTIFY_SOURCE, _REENTRANT et _THREAD_SAFE sont spécifiques à Linux (glibc).
NOTES | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
Selon quelles macros de test de fonctionnalité parmi les précédentes sont définies, <features.h> définit de manière interne diverses autres macros qui sont vérifiées par d'autres fichiers d'entêtes de la glibc. Ces macros ont des noms préfixés par deux caractères « soulignement » (par exemple : __USE_MISC). Les programmes ne doivent jamais définir ces macros directement : ils doivent à la place utiliser la (les) macro(s) de test de fonctionnalité de la liste précédente.
VOIR AUSSI | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
TRADUCTION | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
Ce document est une traduction réalisée par Alain Portal <aportal AT univ-montp2 DOT fr> le 4 août 2006 et révisée le 6 juin 2008.
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 feature_test_macros ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.
Sommaire | Début | Suivant | Sommaire | Préc.page.lue | Accueil |
Table des mots clés | Début | Suivant | Sommaire | Préc.page.lue | Accueil |
__STRICT_ANSI__ | Macros de test de fonctionnalités reconnues par la glibc |
_ATFILE_SOURCE (depuis la glibc 2.4) | Macros de test de fonctionnalités reconnues par la glibc |
_BSD_SOURCE | Macros de test de fonctionnalités reconnues par la glibc |
_FILE_OFFSET_BITS | Macros de test de fonctionnalités reconnues par la glibc |
_FORTIFY_SOURCE (depuis la glibc 2.3.4) | Macros de test de fonctionnalités reconnues par la glibc |
_GNU_SOURCE | Macros de test de fonctionnalités reconnues par la glibc |
_ISOC99_SOURCE | Macros de test de fonctionnalités reconnues par la glibc |
_LARGEFILE64_SOURCE | Macros de test de fonctionnalités reconnues par la glibc |
_POSIX_C_SOURCE | Macros de test de fonctionnalités reconnues par la glibc |
_REENTRANT | Macros de test de fonctionnalités reconnues par la glibc |
_SVID_SOURCE | Macros de test de fonctionnalités reconnues par la glibc |
_THREAD_SAFE | Macros de test de fonctionnalités reconnues par la glibc |
_XOPEN_SOURCE | Macros de test de fonctionnalités reconnues par la glibc |
_XOPEN_SOURCE_EXTENDED | Macros de test de fonctionnalités reconnues par la glibc |