Sous-routine confstr

Objectif

Obtient des variables configurables.

Bibliothèque

Bibliothèque C standard (libc.a)

Syntaxe

#include < unistd.h >

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

Descriptif

La sous-routine confstr détermine la valeur en cours de certains paramètres système, limites ou options définis par une valeur de chaîne. Il est principalement utilisé par les applications pour trouver la valeur par défaut du système pour la variable d'environnement PATH . Son utilisation et sa fonction sont similaires à celles de la sous-routine sysconf , mais elle renvoie des valeurs de chaîne plutôt que des valeurs numériques.

Si le paramètre Len est différent de 0 et que le paramètre Nom a une valeur définie par le système, la sous-routine confstr copie cette valeur dans une mémoire tampon Lensur laquelle pointe le paramètre Buf . Si la chaîne renvoie une valeur supérieure à la valeur spécifiée par le paramètre Len , y compris l'octet null de fin, la sous-routine confstr tronque la chaîne à Len-1 octets et ajoute un octet null de fin au résultat. L'application peut détecter que la chaîne a été tronquée en comparant la valeur renvoyée par la sous-routine confstr à la valeur spécifiée par le paramètre Len .

Paramètres

Article Descriptif
nom Indique le paramètre de variable système à renvoyer. Les valeurs valides du paramètre Nom sont définies dans le fichier unistd.h .
buf Pointe vers la mémoire tampon dans laquelle la sous-routine confstr copie la valeur du paramètre Name .
len Indique la taille de la mémoire tampon stockant la valeur du paramètre Nom .

Valeurs renvoyées

Si la valeur spécifiée par le paramètre Nom est définie par le système, la sous-routine confstr renvoie la taille de la mémoire tampon nécessaire pour contenir la totalité de la valeur. Si cette valeur de retour est supérieure à la valeur spécifiée par le paramètre Len , la chaîne renvoyée en tant que paramètre Buf est tronquée.

Si la valeur du paramètre Len est définie sur 0 et que le paramètre Buf est une valeur null, la sous-routine confstr renvoie la taille de la mémoire tampon nécessaire pour contenir l'intégralité de la valeur définie par le système, mais ne copie pas la valeur de chaîne. Si la valeur du paramètre Len est définie sur 0 mais que le paramètre Buf n'est pas une valeur nulle, le résultat n'est pas spécifié.

Codes d'erreur

La sous-routine confstr échouera si:

Article Descriptif
EINVAL La valeur de l'argument de nom n'est pas valide.

Exemple

Pour savoir quelle taille de mémoire tampon est nécessaire pour stocker la valeur de chaîne du paramètre Nom , entrez:

confstr(_CS_PATH, NULL, (size_t) 0)

La sous-routine confstr renvoie la taille de la mémoire tampon.

Fichiers

Article Descriptif
/usr/include/limits.h Contient des limites définies par le système.
/usr/include/unistd.h Contient des variables d'environnement définies par le système.