confstr - Lire une chaîne de caractères dépendant de la
configuration
Bibliothèque C standard (
libc,
-lc)
#include <unistd.h>
size_t confstr(int name, char buf[.size], size_t size);
confstr() :
_POSIX_C_SOURCE >= 2 || _XOPEN_SOURCE
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 GNU C
seulement ; depuis la glibc 2.3.2)
- Une chaîne qui identifie la version de la
bibliothèque GNU C du système (par exemple,
« glibc 2.3.4 »).
-
_CS_GNU_LIBPTHREAD_VERSION (Bibliothèque GNU
C seulement ; depuis la glibc 2.3.2)
- Une chaîne qui identifie l'implémentation
POSIX fournie par la bibliothèque C du système (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
size est différent de 0, alors
confstr() copie la valeur de la chaîne dans le tampon
buf, en limitant la longueur à
size - 1 octets si
nécessaire, terminée par un octet nul
(« \0 »). On peut détecter la troncature de
la chaîne en comparant le résultat de
confstr() avec le
paramètre
size.
Si
size est égal à zéro et si
buf vaut NULL,
alors
confstr() renvoie simplement la valeur définie ci-dessus.
Si
name est une variable de configuration valable,
confstr()
renvoie le nombre d'octets (incluant l'octet nul terminal) qui doit
être utilisé pour enregistrer la variable. Cette valeur peut
être plus grande que
size, ce qui signifie que la valeur de
buf est tronquée.
Si
name est une variable de configuration valable sans valeur, alors
confstr() renvoie
0. Si
name ne correspond pas à
une variable de configuration valable,
confstr() renvoie
0 et
errno est défini à
EINVAL.
- EINVAL
- La valeur de name n'est pas valable.
Pour une explication des termes utilisés dans cette section, consulter
attributes(7).
Interface |
Attribut |
Valeur |
confstr() |
Sécurité des threads |
MT-Safe |
POSIX.1-2001, POSIX.1-2008.
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);
getconf(1),
sh(1),
exec(3),
fpathconf(3),
pathconf(3),
sysconf(3),
system(3)
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]