getenv, _wgetenv
Remonter à stdlib.h - Index
Fichier d'en-tête
stdlib.h
Catégorie
Routines de contrôle de processus
Prototype
char *getenv(const char *name);
wchar_t *_wgetenv(const wchar_t *name);
Description
Obtient une variable d'environnement depuis l'environnement système.
L'environnement est composé d'une suite d'entrées de la forme name=string\0
.
getenv renvoie la valeur d'une variable spécifiée. name peut être en majuscule ou en minuscule. name ne doit pas inclure le signe égal (=
). Si la variable d'environnement spécifiée n'existe pas, getenv renvoie un pointeur NULL.
Pour modifier une variable d'environnement, utilisez putenv, _wputenv.
Remarque : La fonction getenv renvoie un pointeur sur la variable d'environnement, et pas une copie du contenu de la variable. Il est ainsi possible de modifier le contenu de la variable à l'aide du pointeur obtenu, comme dans l'exemple suivant :
Ce n'est pas la méthode recommandée pour modifier le contenu d'une variable d'environnement.char *p; p = getenv("PROCESSOR_ARCHITECTURE"); puts(p); strcpy(p, "F20"); p = getenv("PROCESSOR_ARCHITECTURE"); // has no effect on p puts(p);Sortie possible :
x86 F20
Valeur de retour
En cas de succès, getenv renvoie la valeur associée au nom.
Si le nom spécifié n'est pas défini dans l'environnement, getenv renvoie un pointeur NULL.
Exemple
#include <stdio.h>
#include <stdlib.h>
#include <alloc.h>
#include <string.h>
int main(void)
{
char *path, *ptr;
int i = 0;
/* get the current path environment */
ptr = getenv("PATH");
/* set up new path */
path = (char *) malloc(strlen(ptr)+15);
strcpy(path,"PATH=");
strcat(path,ptr);
strcat(path,";c:\\temp");
/* replace the current path and display current environment */
putenv(path);
while (_environ[i]){
printf("%s\n",_environ[i++]);
}
return 0;
}
Portabilité
POSIX | Win32 | ANSI C | ANSI C++ | |
---|---|---|---|---|
getenv |
+ |
+ |
+ |
+ |
_wgetenv |
+ |