confstr

Autres langues

Langue: fr

Version: 17 avril 1993 (mandriva - 01/05/08)

Section: 3 (Bibliothèques de fonctions)

NOM

confstr - Lire une chaîne de caractères dépendant de la configuration

SYNOPSIS

 #define _POSIX_C_SOURCE 2
 or
 #define _XOPEN_SOURCE
 
#include <unistd.h> size_t confstr (int name, char *buf, size_t len);

DESCRIPTION

La fonction confstr() fournit la valeur d'une chaîne de caractères dépendante de la configuration.

L'argument name est la variable système réclamée. Les variables suivantes sont supportées :

_CS_GNU_LIBC_VERSION (Bibliothèque C GNU seulement ; depuis glibc 2.3.2)
Une chaîne qui identifie la version de la bibliothèque C GNU sur ce système (par exemple, "glibc 2.3.4").
_CS_GNU_LIBPTHREAD_VERSION (Bibliothèque C GNU seulement ; depuis glibc 2.3.2)
Une chaîne qui identifie l'implémentation POSIX fournie par cette bibilothèque C (par exemple, "NPTL 2.3.4" ou "linuxthreads-0.10").
_CS_PATH
Une valeur de la variable PATH indiquant les emplacements où les utilitaires standards POSIX.2 peuvent être trouvés.

Si buf n'est pas NULL, et si len est différent de 0, alors confstr() copie la valeur de la chaîne dans le tampon buf, en limitant la longueur à len - 1 caractères, terminée par un octet nul. On peut détecter la troncature de la chaîne en comparant le résultat de confstr() avec le paramètre len.

Si len est nulle, et si buf vaut NULL, alors confstr() renvoie simplement la longueur de la variable système.

VALEUR RENVOYÉE

Si name est une variable de configuration valide, confstr() renvoie le nombre d'octets (incluant l'octet nul de fin) qui sont nécessaires pour contenir la valeur complète de cette variable. Cette valeur peut être plus grande que len, ce qui signifie que la valeur dans buf sera tronquée.

Si name est une variable de configuration valide, mais que cette variable n'a pas de valeur, confstr() renvoie 0. Si name ne correspond à aucune variable de configuration valide, confstr() renvoie 0 et écrit EINVAL dans errno.

ERREURS

EINVAL
name n'est pas valide.

CONFORMITÉ

POSIX.1-2001.

EXEMPLE

Le fragment de code ci-dessous détermine le chemin d'accès aux utilitaires POSIX.2 :
 
 char *pathbuf; size_t n;
 
 n = confstr(_CS_PATH,NULL,(size_t) 0);
 if ((pathbuf = malloc(n)) == NULL) abort();
 confstr(_CS_PATH, pathbuf, n);
 
 

VOIR AUSSI

sh(1), exec(3), system(3), feature_test_macros(7)

TRADUCTION

Ce document est une traduction réalisée par Christophe Blaess <http://www.blaess.fr/christophe/> le 23 octobre 1996 et révisée le 24 novembre 2007.

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 confstr ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.