getenv, getenv_s
|
Défini dans l'en-tête
<stdlib.h>
|
||
|
char
*
getenv
(
const
char
*
name
)
;
|
(1) | |
|
errno_t getenv_s
(
size_t
*
restrict
len,
char
*
restrict
value,
rsize_t valuesz, const char * restrict name ) ; |
(2) | (depuis C11) |
getenv
, ainsi qu'un appel aux fonctions POSIX
setenv()
,
unsetenv()
, et
putenv()
peut invalider le pointeur retourné par un appel précédent ou modifier la chaîne obtenue d'un appel précédent.
getenv
provoque un comportement indéfini.
-
- name est un pointeur nul
- valuesz est supérieur à RSIZE_MAX
- value est un pointeur nul et valuesz n'est pas zéro
-
Comme pour toutes les fonctions à vérification de limites,
getenv_sn'est garantie d'être disponible que si __STDC_LIB_EXT1__ est défini par l'implémentation et si l'utilisateur définit __STDC_WANT_LIB_EXT1__ à la constante entière 1 avant d'inclure <stdlib.h> .
Table des matières |
Paramètres
| name | - | chaîne de caractères terminée par un caractère nul identifiant le nom de la variable d'environnement à rechercher |
| len | - |
pointeur vers un emplacement fourni par l'utilisateur où
getenv_s
stockera la longueur de la variable d'environnement
|
| value | - |
pointeur vers un tableau de caractères fourni par l'utilisateur où
getenv_s
stockera le contenu de la variable d'environnement
|
| valuesz | - |
nombre maximum de caractères que
getenv_s
est autorisé à écrire dans
dest
(taille du tampon)
|
Valeur de retour
Notes
Sur les systèmes POSIX, les
variables d'environnement
sont également accessibles via la variable globale
environ
, déclarée comme
extern
char
**
environ
;
dans
<unistd.h>
, et via le troisième argument optionnel,
envp
, de
la fonction main
.
L'appel à
getenv_s
avec un pointeur nul pour
value
et zéro pour
valuesz
est utilisé pour déterminer la taille du tampon nécessaire pour contenir l'intégralité du résultat.
Exemple
#include <stdio.h> #include <stdlib.h> int main(void) { const char *name = "PATH"; const char *env_p = getenv(name); if (env_p) printf("Your %s is %s\n", name, env_p); }
Sortie possible :
Your PATH is /home/gamer/.local/bin:/usr/local/bin:/usr/bin:/bin:/usr/share/games
Références
- Norme C23 (ISO/CEI 9899:2024) :
-
- 7.22.4.6 La fonction getenv (p: TBD)
-
- K.3.6.2.1 La fonction getenv_s (p: TBD)
- Norme C17 (ISO/CEI 9899:2018) :
-
- 7.22.4.6 La fonction getenv (p: 256-257)
-
- K.3.6.2.1 La fonction getenv_s (p: 440-441)
- Norme C11 (ISO/IEC 9899:2011):
-
- 7.22.4.6 La fonction getenv (p: 352-353)
-
- K.3.6.2.1 La fonction getenv_s (p: 606-607)
- Norme C99 (ISO/IEC 9899:1999) :
-
- 7.20.4.5 La fonction getenv (p: 317)
- Norme C89/C90 (ISO/IEC 9899:1990) :
-
- 4.10.4.4 La fonction getenv
Voir aussi
|
Documentation C++
pour
getenv
|