sysconf(3) Library Functions Manual sysconf(3) NOM sysconf - Obtenir des informations de configuration au moment de l'execution BIBLIOTHEQUE Bibliotheque C standard (libc, -lc) SYNOPSIS #include long sysconf(int nom); DESCRIPTION POSIX permet a une application de tester a la compilation ou a l'execution si certaines options sont prises en charge ou de determiner quelles sont les valeurs de certaines limites ou constantes configurables. Cela est fait a la compilation en incluant et/ou et en testant la valeur de certaines macros. Pendant l'execution, vous pouvez obtenir les valeurs numeriques en utilisant la fonction sysconf(). Vous pouvez obtenir les valeurs numeriques, qui peuvent dependre du systeme de fichiers dans lequel un fichier reside en utilisant les appels fpathconf(3) et pathconf(3). Vous pouvez obtenir les valeurs de chaines en utilisant confstr(3). Les valeurs obtenues a partir de ces fonctions sont des constantes de configuration du systeme. Elles ne seront donc pas modifiees pendant la duree de vie d'un processus. Pour les options, il y a typiquement une constante symbolique _POSIX_FOO qui peut etre definie dans . Si elle n'est pas definie, vous pouvez poser la question a l'execution. Si elle est definie a -1, cela signifie que l'option n'est pas prise en charge. Si elle est definie a 0, les en-tetes et les fonctions en rapport existent mais vous devrez demander pendant l'execution quel degre de prise en charge est disponible. Si elle est definie a une autre valeur que -1 ou 0, l'option est prise en charge. Habituellement, la valeur (par exemple 200112L) indique l'annee et le mois de la revision POSIX qui decrit l'option. La glibc utilise la valeur 1 pour indiquer la prise en charge aussi longtemps que la revision POSIX n'a pas ete publiee. 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 etre definie dans , ou _POSIX_FOO, pouvant etre definie dans . La constante ne sera pas definie si la limite n'est pas indiquee. Si la constante est definie, elle fournit une valeur garantie et une valeur plus grande pourrait etre prise en charge. Si une application veut tirer parti des valeurs pouvant varier entre les systemes, 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 parametre passe a sysconf() pour s'enquerir de sa valeur et une breve 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 etre inferieure a _POSIX_ARG_MAX (4096). CHILD_MAX - _SC_CHILD_MAX Le nombre maximal de processus simultanes pour un UID. Ne doit pas etre moins que _POSIX_CHILD_MAX (25). HOST_NAME_MAX - _SC_HOST_NAME_MAX La longueur maximale d'un nom d'hote, sans inclure le caractere nul final, tel qu'il est retourne par gethostname(2). Ne doit pas etre inferieure a _POSIX_HOST_NAME_MAX (255). LOGIN_NAME_MAX - _SC_LOGIN_NAME_MAX La longueur maximale d'un nom de connexion (login), incluant le caractere nul final. Ne doit pas etre inferieure a _POSIX_LOGIN_NAME_MAX (9). NGROUPS_MAX - _SC_NGROUPS_MAX Nombre maximal de GID supplementaires. tops d'horloge - _SC_CLK_TCK Le nombre de tops d'horloge par seconde. La macro correspondante est obsolete. Il s'agit bien sur de CLK_TCK (veuillez noter que la macro CLOCKS_PER_SEC ne donne pas d'information : elle doit etre egale a 1000000). OPEN_MAX - _SC_OPEN_MAX Le nombre maximal de fichiers qu'un processus peut ouvrir simultanement. Ne doit pas etre inferieur a _POSIX_OPEN_MAX (20). PAGESIZE - _SC_PAGESIZE Taille d'une page en octets. Ne doit pas etre inferieure a 1. PAGE_SIZE - _SC_PAGE_SIZE Un synonyme de PAGESIZE ou _SC_PAGESIZE. (Les variables PAGESIZE et PAGE_SIZE sont toutes les deux specifiees dans POSIX.) RE_DUP_MAX - _SC_RE_DUP_MAX Le nombre maximal de repetitions d'une expression rationelle permises par regexec(3) et regcomp(3). Ne doit pas etre inferieur a _POSIX2_RE_DUP_MAX (255). STREAM_MAX - _SC_STREAM_MAX Le nombre maximal de flux qu'un processus peut ouvrir simultanement. Si la variable est definie, elle a la meme valeur que la macro C standard FOPEN_MAX. Ne doit pas etre inferieur a _POSIX_STREAM_MAX (8). SYMLOOP_MAX - _SC_SYMLOOP_MAX Le nombre maximal de liens symboliques rencontres dans le nom d'un chemin avant que la resolution ne retourne ELOOP. Ne doit pas etre inferieur a _POSIX_SYMLOOP_MAX (8). TTY_NAME_MAX - _SC_TTY_NAME_MAX La longueur maximale du nom d'un peripherique terminal, incluant l'octet NULL final. Ne doit pas etre inferieure a _POSIX_TTY_NAME_MAX (9). TZNAME_MAX - _SC_TZNAME_MAX Le nombre maximal de caracteres dans le nom d'un fuseau horaire. Ne doit pas etre inferieur a _POSIX_TZNAME_MAX (6). _POSIX_VERSION - _SC_VERSION Indique l'annee et le mois ou la norme POSIX.1 a ete approuve, en utilisant le format AAAAMML. La valeur 199009L correspond a la revision 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 acceptee par l'utilitaire bc(1). BC_DIM_MAX - _SC_BC_DIM_MAX La valeur maximale des elements autorises dans une table par bc(1). BC_SCALE_MAX - _SC_BC_SCALE_MAX La valeur maximale pour scale autorisee par bc(1). BC_STRING_MAX - _SC_BC_STRING_MAX La longueur maximale d'une chaine acceptee par bc(1). COLL_WEIGHTS_MAX - _SC_COLL_WEIGHTS_MAX Indique le nombre maximal de poids a affecter a une entree dans le mot cle d'ordre LC_COLLATE du fichier de definition de localisation. EXPR_NEST_MAX - _SC_EXPR_NEST_MAX Le nombre maximal d'expressions imbriquees entre parentheses dans expr(1). LINE_MAX - _SC_LINE_MAX La longueur maximale d'une ligne d'entree d'un utilitaire, aussi bien depuis l'entree standard que depuis un fichier. Cette longueur comprend l'emplacement du caractere final << nouvelle ligne >>. RE_DUP_MAX - _SC_RE_DUP_MAX Le nombre maximal de repetitions d'une expression rationnelle quand la notation d'intervalle \{m,n\} est utilisee. POSIX2_VERSION - _SC_2_VERSION Indique la version de la norme POSIX.2 au format AAAAMML. POSIX2_C_DEV - _SC_2_C_DEV Indique si les utilitaires POSIX.2 de developpement en C sont pris en charge. POSIX2_FORT_DEV - _SC_2_FORT_DEV Indique si les utilitaires POSIX.2 de developpement en FORTRAN sont pris en charge. POSIX2_FORT_RUN - _SC_2_FORT_RUN Indique si les utilitaires POSIX.2 d'execution FORTRAN sont pris en charge. _POSIX2_LOCALEDEF - _SC_2_LOCALEDEF Indique si la creation de localisation POSIX.2 avec localedef(1) est prise en charge. POSIX2_SW_DEV - _SC_2_SW_DEV Indique si l'option des utilitaires POSIX.2 de developpement logiciel est prise en charge. Quelques valeurs existent sans appartenir a une norme : - _SC_PHYS_PAGES Le nombre de pages de memoire physique. Notez qu'il est possible que le produit de cette valeur et de la valeur _SC_PAGE_SIZE declenche un debordement. - _SC_AVPHYS_PAGES Le nombre de pages de memoire physique actuellement disponibles. - _SC_NPROCESSORS_CONF Le nombre de processeurs configures. Voir aussi get_nprocs_conf(3). - _SC_NPROCESSORS_ONLN Le nombre de processeurs actuellement en ligne (disponibles). Voir aussi get_nprocs_conf(3). VALEUR RENVOYEE La valeur renvoyee de sysconf() est une des suivantes : - En cas d'erreur, la valeur de retour est -1 et errno est definie pour preciser l'erreur (par exemple, EINVAL indique que nom n'est pas valable). - Si nom correspond a une limite maximale ou minimale et si cette limite est indeterminee, -1 est renvoye et errno n'est pas modifie. (Pour distinguer une limite indeterminee d'une erreur, definissez errno a zero avant l'appel, puis verifiez si errno est different de zero quand -1 est renvoye.) - Si nom correspond a une option, une valeur positive est renvoyee si l'option est prise en charge, et -1 est renvoye si l'option n'est pas prise en charge. - Autrement, la valeur actuelle de l'option ou de la limite est renvoyee. Cette valeur ne sera pas plus restrictive que la valeur correspondante decrite pour l'application dans ou quand l'application a ete compilee. ERREURS EINVAL nom n'est pas valable. ATTRIBUTS Pour une explication des termes utilises dans cette section, consulter attributes(7). +-----------------------------+--------------------------+-------------+ |Interface | Attribut | Valeur | +-----------------------------+--------------------------+-------------+ |sysconf() | Securite des threads | MT-Safe env | +-----------------------------+--------------------------+-------------+ STANDARDS POSIX.1-2008. HISTORIQUE POSIX.1-2001. BOGUES Il est difficile d'utiliser ARG_MAX, car il n'est pas precise combien d'espace d'argument de exec(3) est utilise par les variables d'environnement de l'utilisateur. Certaines valeurs renvoyees peuvent etre enormes ; elles ne sont pas utilisables pour realiser des allocations memoires. VOIR AUSSI bc(1), expr(1), getconf(1), locale(1), confstr(3), fpathconf(3), pathconf(3), posixoptions(7) TRADUCTION La traduction francaise de cette page de manuel a ete creee par Christophe Blaess , Stephan Rafin , Thierry Vignaud , Francois Micaux, Alain Portal , Jean-Philippe Guerard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas Francois , Florentin Duneau , Simon Paillard , Denis Barbier , David Prevot et Jean-Pierre Giraud Cette traduction est une documentation libre ; veuillez vous reporter a la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITE LEGALE. Si vous decouvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message a . Pages du manuel de Linux 6.06 31 octobre 2023 sysconf(3)