SYSCONF
Section : Manuel du programmeur Linux (
3)
Mise à jour de la version anglaise : 12 décembre 2007
Index
Menu principal
NOM
sysconf - Obtenir des informations de configuration
SYNOPSIS
#include <unistd.h>
long sysconf(int name);
DESCRIPTION
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 entê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.
La 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 l'octet 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 l'octet 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 inférieure à
_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 rationnelle permise par
regexec(3)
et
regcomp(3).
Ne doit pas être inférieure à
_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 inférieure à
_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érieure à
_POSIX_SYMLOOP_MAX
(8).
- TTY_NAME_MAX - _SC_TTY_NAME_MAX
-
La longueur maximale du nom d'un périphérique terminal,
incluant l'octet 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 inférieure à
_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
-
Le nombre de processeurs configurés.
- - _SC_NPROCESSORS_ONLN
-
Le nombre de processeurs actuellement en ligne (disponibles).
VALEUR RENVOYÉE
Si
name
est invalide, -1 est renvoyé 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,
il ne faut pas les utiliser pour allouer de la mémoire.
VOIR AUSSI
bc(1),
expr(1),
getconf(1),
locale(1),
fpathconf(3),
pathconf(3),
posixoptions(7)
TRADUCTION
Ce document est une traduction réalisée par Christophe Blaess
<http://www.blaess.fr/christophe/> le 10 novembre 1996, mise à jour par
Alain Portal <aportal AT univ-montp2 DOT fr> le 27 juin 2005
et révisée le 17 juillet 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 3 sysconf ».
N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute
erreur dans cette page de manuel.
Index
- NOM
-
- SYNOPSIS
-
- DESCRIPTION
-
- Variables POSIX.1
-
- Variables POSIX.2
-
- VALEUR RENVOYÉE
-
- CONFORMITÉ
-
- BOGUES
-
- VOIR AUSSI
-
- TRADUCTION
-
Dernière mise à jour : 17 juillet 2008