NOM¶
sysconf - Obtenir des informations de configuration au moment de
l'exécution
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
en-têtes et les fonctions en rapport existent mais vous devrez demander
pendant l'exécution quel degré de prise en charge 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, consultez
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 indiqué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 maximal 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 - _SC_SYMLOOP_MAX
- Le nombre maximal 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ù la norme 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 maximal 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 maximal 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 prises
en charge.
- _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é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.
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),
confstr(3),
fpathconf(3),
pathconf(3),
posixoptions(7)
COLOPHON¶
Cette page fait partie de la publication 3.65 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¶
Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a
<
http://po4a.alioth.debian.org/> par l'équipe de traduction
francophone au sein du projet perkamon
<
http://perkamon.alioth.debian.org/>.
Christophe Blaess <
http://www.blaess.fr/christophe/> (1996-2003), Alain
Portal <
http://manpagesfr.free.fr/> (2003-2006). Nicolas François
et l'équipe francophone de traduction de Debian (2006-2009).
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> ».