CONFSTR(3)

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

SYNOPSIS
#include <unistd.h>

size_t confstr(int name, char *buf, size_t len);

Exigences de macros de test de fonctionnalités pour la glibc (voir feature_test_macros(7)) :

getcwd() : _POSIX_C_SOURCE >= 2 || _XOPEN_SOURCE

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 (glibc seulement ; depuis laglibc 2.3.2)
    Une chaîne qui identifie la version de la glibc sur ce système (par exemple, « glibc 2.3.4 »").

_CS_GNU_LIBPTHREAD_VERSION (glibc seulement ; depuis la 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 standard 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);
pathbuf = malloc(n);
if (pathbuf == NULL)
    abort();
confstr(_CS_PATH, pathbuf, n);

VOIR AUSSI
sh(1), exec(3), system(3)

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