CONFSTR

Section : Manuel du programmeur Linux (3)
Mise à jour de la version anglaise : 26 juillet 2007
Index Menu principal  

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.

 

Index

NOM
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ERREURS
CONFORMITÉ
EXEMPLE
VOIR AUSSI
TRADUCTION

Dernière mise à jour : 17 juillet 2008