sysconf - Obtenir des informations de configuration au moment de
l'exécution
Bibliothèque C standard (
libc,
-lc)
#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.
At run time, one can ask for numerical values using the present function
sysconf(). One can ask for numerical values that may depend on the
filesystem in which a file resides using
fpathconf(3) and
pathconf(3). One can ask for string values using
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.
For options, typically, there is a constant
_POSIX_FOO that may be
defined in
<unistd.h>. If it is undefined, one should ask at run
time. If it is defined to -1, then the option is not supported. If it is
defined to 0, then relevant functions and headers exist, but one has to ask at
run time what degree of support is available. If it is defined to a value
other than -1 or 0, then the option is supported. Usually the value (such as
200112L) indicates the year and month of the POSIX revision describing the
option. glibc uses the value 1 to indicate support as long as the POSIX
revision has not been published yet. The
sysconf() argument will be
_SC_FOO. For a list of options, see
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.
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).
-
NGROUPS_MAX - _SC_NGROUPS_MAX
- Maximum number of supplementary group IDs.
- 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
- Size of a page in bytes. Must not be less than 1.
-
PAGE_SIZE - _SC_PAGE_SIZE
- A synonym for PAGESIZE/_SC_PAGESIZE. (Both
PAGESIZE and PAGE_SIZE are specified in POSIX.)
-
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.
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
- indicates the maximum numbers of weights that can be
assigned to an entry of the LC_COLLATE order keyword in the locale
definition file.
-
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
- indicates whether the POSIX.2 creation of locales via
localedef(1) is supported.
-
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 number of processors configured. See also
get_nprocs_conf(3).
-
- _SC_NPROCESSORS_ONLN
- The number of processors currently online (available). See
also get_nprocs_conf(3).
The return value of
sysconf() is one of the following:
- •
- On error, -1 is returned and errno is set to
indicate the error (for example, EINVAL, indicating that
name is invalid).
- •
- If name corresponds to a maximum or minimum limit,
and that limit is indeterminate, -1 is returned and errno is not
changed. (To distinguish an indeterminate limit from an error, set
errno to zero before the call, and then check whether errno
is nonzero when -1 is returned.)
- •
- If name corresponds to an option, a positive value
is returned if the option is supported, and -1 is returned if the option
is not supported.
- •
- Otherwise, the current value of the option or limit is
returned. This value will not be more restrictive than the corresponding
value that was described to the application in <unistd.h> or
<limits.h> when the application was compiled.
- EINVAL
-
name is invalid.
Pour une explication des termes utilisés dans cette section, consulter
attributes(7).
Interface |
Attribut |
Valeur |
sysconf() |
Sécurité des threads |
MT-Safe env |
POSIX.1-2001, POSIX.1-2008.
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.
bc(1),
expr(1),
getconf(1),
locale(1),
confstr(3),
fpathconf(3),
pathconf(3),
posixoptions(7)
La traduction française de cette page de manuel a été
créée par Christophe Blaess
<
https://www.blaess.fr/christophe/>, Stéphan Rafin
<
[email protected]>, Thierry Vignaud
<
[email protected]>, François Micaux, Alain Portal
<
[email protected]>, Jean-Philippe Guérard
<
[email protected]>, Jean-Luc Coulon (f5ibh)
<
[email protected]>, Julien Cristau
<
[email protected]>, Thomas Huriaux <
[email protected]>,
Nicolas François <
[email protected]>, Florentin
Duneau <
[email protected]>, Simon Paillard
<
[email protected]>, Denis Barbier
<
[email protected]> et David Prévot <
[email protected]>
Cette traduction est une documentation libre ; veuillez vous reporter
à la
GNU
General Public License version 3 concernant les conditions de copie
et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel,
veuillez envoyer un message à
[email protected]