NOM
sysconf - Obtenir des informations de configuration.
SYNOPSIS
#include <unistd.h>
long sysconf(int name);
POSIX permet à une application de tester à la compilation ou à
l’exécution si certaines options sont gérées ou de déterminer quelles
sont les valeurs de certaines limites ou constantes configurables.
Ceci est fait à la compilation en incluant <unistd.h> et/ou <limits.h>
et en testant la valeur de certaines macros.
Pendant l’exécution, vous pouvez obtenir les valeurs numériques en
utilisant la fonction sysconf(). Vous pouvez obtenir les valeurs
numériques, qui peuvent dépendre du système de fichiers, relatives à un
fichier en utilisant les appels fpathconf(3) et pathconf(3). Vous
pouvez obtenir les valeurs de chaînes en utilisant confstr(3).
Les valeurs obtenues à partir de ces fonctions sont des constantes de
configuration du système. Elles ne seront donc pas modifiées pendant la
durée de vie d’un processus.
Pour les options, il y a typiquement une constante symbolique
_POSIX_FOO qui peut être définie dans <unistd.h>. Si elle n’est pas
définie, vous pouvez poser la question à l’exécution. Si elle est
définie à -1, c’est que l’option n’est pas supportée. Si elle est
définie à 0, les en-têtes et les fonctions en rapport existent mais
vous devrez demander pendant l’exécution quel degré de support est
disponible. Si elle est définie à une autre valeur que -1 ou 0,
l’option est supportée. Habituellement, la valeur (comme par exemple
200112L) indique l’année et le mois de la révision POSIX qui décrit
l’option. Glibc utilise la valeur 1 pour indiquer le support aussi
longtemps que la révision POSIX n’a pas été publiée. L’argument de
sysconf() sera _SC_FOO. Pour la liste des options, voir
posixoptions(7).
Pour les variables ou les limites, il s’agit typiquement d’une
constante _FOO, pouvant être définie dans <limits.h>, ou _POSIX_FOO,
pouvant être définie dans <unistd.h>. La constante ne sera pas définie
si la limite n’est pas spécifiée. Si la constante est définie, cela
donne une valeur garantie et une valeur plus grande pourrait être
supportée. Si une application veut tirer parti des valeurs pouvant
varier entre les systèmes, l’appel de sysconf() permet d’obtenir ces
informations. L’argument de sysconf() sera _SC_FOO.
Variables POSIX.1
Nous allons donner le nom de la variable, le nom du paramètre passé à
sysconf() pour s’enquérir de sa valeur et une brève description.
Tout d’abord, les valeurs compatibles POSIX.1.
ARG_MAX - _SC_ARG_MAX
La longueur maximale des arguments des fonctions de la famille
exec(3). Ne doit pas être inférieure à _POSIX_ARG_MAX (4096).
CHILD_MAX - _SC_CHILD_MAX
Le nombre maximal de processus simultanés pour un UID. Ne doit
pas être moins que _POSIX_CHILD_MAX (25).
HOST_NAME_MAX - _SC_HOST_NAME_MAX
La longueur maximale d’un nom d’hôte, sans inclure le caractère
nul final, tel qu’il est retourné par gethostname(2). Ne doit
pas être inférieure à _POSIX_HOST_NAME_MAX (255).
LOGIN_NAME_MAX - _SC_LOGIN_NAME_MAX
La longueur maximale d’un nom de connexion (login), incluant le
caractère nul final. Ne doit pas être inférieure à
_POSIX_LOGIN_NAME_MAX (9).
tops d’horloge - _SC_CLK_TCK
Le nombre de tops d’horloge par seconde. La macro correspondante
est obsolète. Il s’agit bien sûr de CLK_TCK (veuillez noter que
la macro CLOCKS_PER_SEC ne donne pas d’information : elle doit
être égale à 1000000).
OPEN_MAX - _SC_OPEN_MAX
Le nombre maximal de fichiers qu’un processus peut ouvrir
simultanément. Ne doit pas être moins que _POSIX_OPEN_MAX (20).
PAGESIZE - _SC_PAGESIZE
Taille d’une page en octets. Ne doit pas être inférieure à 1
(certains systèmes utilisent PAGE_SIZE à la place).
RE_DUP_MAX - _SC_RE_DUP_MAX
Le nombre maximum de répétitions d’une expression rationelle
permises par regexec(3) et regcomp(3). Ne doit pas être
inférieur à _POSIX2_RE_DUP_MAX (255).
STREAM_MAX - _SC_STREAM_MAX
Le nombre maximal de flux qu’un processus peut ouvrir
simultanément. Si elle est définie, elle a la même valeur que la
macro C standard FOPEN_MAX. Ne doit pas être moins que
_POSIX_STREAM_MAX (8).
SYMLOOP_MAX
Le nombre maximum de liens symboliques rencontrés dans le nom
d’un chemin avant que la résolution ne retourne ELOOP. Ne doit
pas être inférieur à _POSIX_SYMLOOP_MAX (8).
TTY_NAME_MAX - _SC_TTY_NAME_MAX
La longueur maximale du nom d’un périphérique terminal, incluant
le NUL final. Ne doit pas être inférieure à _POSIX_TTY_NAME_MAX
(9).
TZNAME_MAX - _SC_TZNAME_MAX
Le nombre maximal de caractères dans le nom d’un fuseau horaire.
Ne doit pas être moins que _POSIX_TZNAME_MAX (6).
_POSIX_VERSION - _SC_VERSION
Indique l’année et le mois où le standard POSIX.1 a été
approuvé, en utilisant le format AAAAMML. La valeur 199009L
correspond à la révision de septembre 1990.
Variables POSIX.2
Ensuite, les constantes POSIX.2 donnant les limites pour les
utilitaires.
BC_BASE_MAX - _SC_BC_BASE_MAX
La valeur maximale pour obase acceptée par l’utilitaire bc(1).
BC_DIM_MAX - _SC_BC_DIM_MAX
La valeur maximale des éléments autorisés dans une table par
bc(1).
BC_SCALE_MAX - _SC_BC_SCALE_MAX
La valeur maximale pour scale autorisée par bc(1).
BC_STRING_MAX - _SC_BC_STRING_MAX
La longueur maximale d’une chaîne acceptée par bc(1).
COLL_WEIGHTS_MAX - _SC_COLL_WEIGHTS_MAX
Le nombre maximum de poids à affecter à une entrée dans l’ordre
LC_COLLATE du fichier de définition de localisation.
EXPR_NEST_MAX - _SC_EXPR_NEST_MAX
Le nombre maximal d’expressions imbriquées entre parenthèses
dans expr(1).
LINE_MAX - _SC_LINE_MAX
La longueur maximale d’une ligne d’entrée d’un utilitaire, aussi
bien depuis l’entrée standard que depuis un fichier. Cette
longueur comprend l’emplacement du caractère final « nouvelle
ligne ».
RE_DUP_MAX - _SC_RE_DUP_MAX
Le nombre maximum de répétitions d’une expression rationnelle
quand la notation d’intervalle \{m,n\} est utilisée.
POSIX2_VERSION - _SC_2_VERSION
La version de la norme POSIX.2 au format AAAAMML.
POSIX2_C_DEV - _SC_2_C_DEV
Indique si les utilitaires POSIX.2 de développement en C sont
supportés.
POSIX2_FORT_DEV - _SC_2_FORT_DEV
Indique si les utilitaires POSIX.2 de développement en FORTRAN
sont supportés.
POSIX2_FORT_RUN - _SC_2_FORT_RUN
Indique si les utilitaires POSIX.2 d’exécution FORTRAN sont
supportés.
_POSIX2_LOCALEDEF - _SC_2_LOCALEDEF
Indique si la création de localisation POSIX.2 avec localedef(1)
est supportée.
POSIX2_SW_DEV - _SC_2_SW_DEV
Indique si les utilitaires POSIX.2 de développement sont
supportés.
Quelques valeurs existent sans appartenir à une norme :
- _SC_PHYS_PAGES
Le nombre de pages de mémoire physique. Notez qu’il est possible
que le produit de cette valeur et de la valeur _SC_PAGE_SIZE
déclenche un débordement.
- _SC_AVPHYS_PAGES
Le nombre de pages de mémoire physique actuellement disponibles.
- _SC_NPROCESSORS_CONF
The nombre de processeurs configuré.
- _SC_NPROCESSORS_ONLN
Le nombre de processeur actuellent en ligne (disponibles).
VALEUR RENVOYÉE
Si name est invalide, -1 est renvoyée et errno est mis à EINVAL. Sinon,
la valeur renvoyée est celle de la ressource système correspondante et
errno n’est pas modifiée. Dans le cas d’options, une valeur positive
est renvoyée si l’option requise est disponible et -1 si elle ne l’est
pas. Dans le cas de limites, -1 signifie qu’aucune limite n’est
définie.
CONFORMITÉ
POSIX.1-2001.
BOGUES
Il est difficile d’utiliser ARG_MAX car il n’est pas précisé combien
d’espace d’argument de exec(3) est utilisé par les variables
d’environnement de l’utilisateur.
Certaines valeurs renvoyées peuvent être énormes ; elles ne sont pas
utilisables pour réaliser des allocations mémoires.
VOIR AUSSI
bc(1), expr(1), getconf(1), locale(1), fpathconf(3), pathconf(3),
posixoptions(7)
COLOPHON
Cette page fait partie de la publication 3.23 du projet man-pages
Linux. Une description du projet et des instructions pour signaler des
anomalies peuvent être trouvées à l’adresse
http://www.kernel.org/doc/man-pages/.
TRADUCTION
Cette page de manuel a été traduite et mise à jour par Christophe
Blaess <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis par
Alain Portal <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et mise à
disposition sur http://manpagesfr.free.fr/.
Les mises à jour et corrections de la version présente dans Debian sont
directement gérées par Nicolas François
<nicolas.francois@centraliens.net> et l’équipe francophone de
traduction de Debian.
Veuillez signaler toute erreur de traduction en écrivant à
<debian-l10n-french@lists.debian.org> ou 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> ».