Rechercher une page de manuel
feature_test_macros
Langue: fr
Version: 26 avril 2006 (ubuntu - 16/08/07)
Section: 7 (Divers)
NOM
feature_test_macros - Macros de test de fonctionnalitésSYNOPSIS
#include <features.h>
DESCRIPTION
Les macros de test de fonctionnalités permettent au programmeur de contrôler quelles définitions sont exposées par les fichiers d'en-têtes système lorsqu'un programme est compilé. Cela peut être utile pour créer des applications standard, en empêchant des définitions non standard d'être exposées. D'autres macros peuvent être utilisées pour exposer des définitions non standard qui ne sont pas exposées par défaut. Les effets précis de chacune des macros décrites ci-dessous peuvent être vérifiés en inspectant le fichier d'en-tête <features.h>Pour avoir un effet, une macro de test de fonctionnalité doit être définie avant d'inclure tout fichier d'en-tête. Cela peut être accompli soit dans la ligne de commande de compilation (cc -DMACRO=valeur), soit en définissant la macro dans le code source avant d'inclure tout en-tête.
Linux/glibc comprend les macros de test de fonctionnalité suivantes :
- _POSIX_C_SOURCE
- Si cette macro est définie avec la valeur 1, les fichiers d'en-têtes exposent les définitions conformes à POSIX.1-1990 et ISO C (1990). Avec la valeur 199309 ou supérieure, les définitions POSIX.1b (extensions temps-réel) sont aussi exposées. Avec la valeur 199506 ou supérieure, les définitions de POSIX.1c (threads) sont exposées en plus des précédentes. Avec la valeur 200112, les définitions correspondant à la spécification POSIX.1-2001 de base sont exposées (sans l'extension XSI).
- _POSIX_SOURCE
- Définir cette macro obsolète (quelle que soit sa valeur) est équivalent à définir _POSIX_C_SOURCE à la valeur 1.
- _XOPEN_SOURCE
- Si cette macro est définie, les définitions conformes à POSIX.1, POSIX.2 et XPG4 sont exposées par les en-têtes. Avec une valeur supérieure ou égale à 500, les définitions de SUSv2 (UNIX 98) sont également exposées. Avec une valeur supérieure ou égale à 600, les définitions de SUSv3 (UNIX 03, c'est-à-dire la spécification de base POSIX.1-2001 plus l'extension XSI) et de C 99 sont exposées en plus des précédentes.
- _XOPEN_SOURCE_EXTENDED
- Si cette macro est définie à la valeur 1, et si _XOPEN_SOURCE est définie, exposer les définitions correspondant aux extensions UNIX XPG4v2.
- _ISOC99_SOURCE
- Exposer les extensions de C 99 au C ISO (1990).
- _LARGEFILE64_SOURCE
- Exposer les définitions de l'API alternative spécifiée par le LFS (Large File Summit) comme une « extension de transition » à la Single Unix Specification. (Voir http://ftp.sas.com/standards/large.file/.)
- _FILE_OFFSET_BITS
- Définir cette macro à la valeur 64 convertit automatiquement les références aux fonctions et types de données 32 bits liés aux E/S sur les fichiers et aux opérations sur le système de fichiers en références à leurs équivalents 64 bits. C'est utile pour les E/S sur des gros fichiers (> 2 Gigaoctets) sur les systèmes 32 bits.
- _BSD_SOURCE
- Si cette macro est définie, les définitions héritées de BSD sont exposées par les en-têtes. De plus, les définitions BSD sont préférées dans les situations où les normes sont en conflit.
- _SVID_SOURCE
- Si cette macro est définie (quelle que soit sa valeur), les en-têtes exposent les définitions héritées de System V. (SVID == System V Interface Definition ; consultez standards(7).)
- _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 199506, et _XOPEN_SOURCE avec la valeur 600. De plus, de nombreuses extensions spécifiques GNU sont 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 sont définies, les autres macros sont désactivées si elles ne sont pas explicitement définies. (Exception : si _POSIX_C_SOURCE n'est pas défini, il est toujours défini à la valeur 199506, sauf si le compilateur est invoqué dans un mode particulier à un standardi, p.ex avec l'attribut -std=c99.) Plusieurs macros peuvent être définies, les effets s'additionnent.
CONFORMITÉ
POSIX.1 spécifie _POSIX_C_SOURCE, _POSIX_SOURCE et _XOPEN_SOURCE. _XOPEN_SOURCE_EXTENDED est spécifié par XPG4v2 (alias SUSv1). _FILE_OFFSET_BITS n'est spécifié par aucune norme, mais est utilisé par d'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 similaire, mais typiquement sous un nom différent. Ce fichier est inclus automatiquement par les autres en-têtes si nécessaire : il n'est pas nécessaire de l'inclure explicitement pour utiliser les macros de test de fonctionnalité.TRADUCTION
Cette page de manuel a été traduite par Julien Cristau <julien.cristau@ens-lyon.org>.La traduction de cette page de manuel est basée sur les traductions disponibles sur http://manpagesfr.free.fr/, mais est gérée par l'équipe francophone de traduction de Debian au travers de la liste de discussion debian-l10n-french.
Veuillez signaler toute erreur de traduction par un rapport de bogue sur le paquet manpages-fr.
Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « man -L C <section> <page_de_man> ».
P : "Tous les animaux naissent libres et égaux sauf les moineaux et les souriceaux"
M : "Ainsi que toutes les bêtes qui entrent dans la composition des croquettes au boeuf..."
Contenus ©2006-2009 Benjamin Poulain
Design ©2006-2009 Maxime Vantorre