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. |