Equivalent de environment (vb) en c [Résolu/Fermé]

Signaler
Messages postés
294
Date d'inscription
jeudi 3 janvier 2013
Statut
Membre
Dernière intervention
19 novembre 2013
-
glennog
Messages postés
294
Date d'inscription
jeudi 3 janvier 2013
Statut
Membre
Dernière intervention
19 novembre 2013
-
Bonjour,



j'aimerais savoir quel est l'équivalent de la fonction n vb ( environment ) en c , qui retourne diverses valeurs ( special folder , username , directory ) et autres , merci

3 réponses

Messages postés
16104
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
24 janvier 2020
2 504
Je ne connais pas VB, donc je ne sais pas ce qu'est exactement cet environnement dont tu parles, mais il ne me semble pas qu'il y ait ce genre de choses en C.

Tout au plus tu peux récupérer les variables d'environnement système en passant un troisième argument dans ton main :

#include "stdio.h"

int main(int argc, char* argv[], char* arge[])
{
	int i;
	
	for (i=0; i<argc; i++)
		printf("argv[%d]=%s\n",i,argv[i]);
	
	for (i=0; arge[i]!=NULL; i++)
		printf("arge[%d]=%s\n",i,arge[i]);
	
	return 0;
}
La confiance n'exclut pas le contrôle
Messages postés
294
Date d'inscription
jeudi 3 janvier 2013
Statut
Membre
Dernière intervention
19 novembre 2013
3
merci de ton post, c'est exactement ce que je cherchais , mais dis moi ,
au cas ou je veus recuperer seulement un element , par exemple arge[9] par exemple ,

si je ne sais pas au depart à quoi le tableau no9 correspond , il n' y a t'il pas un moyen de connaitre cet element , genre une biblio disponible sur le net par exemple ?
encore merci pour ton post
KX
Messages postés
16104
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
24 janvier 2020
2 504
On ne cherches jamais à savoir ce qu'il y a dans la case 9, parce que le contenue du tableau dépendant de la configuration de chaque machine, il sera toujours différent de l'une à l'autre.
Mais chaque variable d'environnement est un couple "clé=valeur", donc il te suffit de parcourir le tableau pour chercher la valeur correspondant à la clé que tu cherches.

Exemple :

#include "stdio.h"
#include "string.h"

int main(int argc, char* argv[], char* arge[])
{
	int i;
	char* key = "OS=";
	
	for (i=0; arge[i]!=NULL; i++)
		if (strncmp(arge[i],key,strlen(key))==0)
			printf("%s",arge[i]);
	
	return 0;
}
Messages postés
294
Date d'inscription
jeudi 3 janvier 2013
Statut
Membre
Dernière intervention
19 novembre 2013
3
ok , merci de ton astuce