Equivalent de environment (vb) en c

Résolu
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

  1. Modérateur
    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
    1. 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
      1. Modérateur
        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;
        }