Main

cs_payen Messages postés 252 Date d'inscription mercredi 25 octobre 2000 Statut Membre Dernière intervention 1 mai 2005 - 13 avril 2003 à 20:40
CoreBreaker Messages postés 540 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 5 octobre 2007 - 14 avril 2003 à 23:07
salut,

en fouillant un peu sur le site, j'ai vu qu'on pouvait declarer le main comme ca:

int main(int argc, char * argv[], char * env[])

a quoi correspond le 3eme argument?

merci d'avance ...

10 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
13 avril 2003 à 21:10
tableau de pointeurs sur des enregistrements de l'environnement de programmation.
Dependra du compilo employé.
BruNews, ciao...
0
cs_payen Messages postés 252 Date d'inscription mercredi 25 octobre 2000 Statut Membre Dernière intervention 1 mai 2005
13 avril 2003 à 21:48
bien bien ... c'est quoi des "enregistrements de l'environnement de programmation"?
0
CoreBreaker Messages postés 540 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 5 octobre 2007 1
13 avril 2003 à 22:31
Ce sont les variables d'environnement. Par exemple env[0] peut contenir la chaine suivante:
"PATH=C:\;C:\WINDOWS"

Core Breaker :)
0
CoreBreaker Messages postés 540 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 5 octobre 2007 1
13 avril 2003 à 22:34
C'est l'environnement d'exécution et pas de programmation.
En principe ca dépend pas du compilo mais de l'OS
Sinon quelle type de dépendance ?

Core Breaker :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
CoreBreaker Messages postés 540 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 5 octobre 2007 1
13 avril 2003 à 22:39
Si ca dépend de l'enronnement de programmation les valeur sont déterminée lors de la compilation or lorsque je changeais les valeurs des variables d'environnement entre 2 lancement du programmes, par exemple une valeur %TOTO% sui n'a rien à voir avec l'environnement de programmation, les valeurs de cette variable changeaient.
Comment cela peut-il être possible alors si c'est déterminé par l'environnement de programmation ?

Core Breaker :)
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
13 avril 2003 à 22:42
J'ai écrit autant de conneries en si peu de mots.
Faut le faire non ???
Je croyais avoir quelques souvenirs de ces vieilleries, faudra que je me fasse à l'idée que j'efface bien.
BruNews, ciao...
0
cs_payen Messages postés 252 Date d'inscription mercredi 25 octobre 2000 Statut Membre Dernière intervention 1 mai 2005
13 avril 2003 à 23:08
OK, merci, j'ai teste ...
mais au fait, elles sont stockees ou ces variables d 'environnement? comment en connaitre le nombre? dependent elles du programme ou sont elles les memes tout le temps?
0
CoreBreaker Messages postés 540 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 5 octobre 2007 1
13 avril 2003 à 23:33
Les variables sont sockées par le noyau de l'OS (dans ses structures internes) mais tu peux les modifier comme tu le sais par la commande "set":
set TOTO= coucou

pour avoir leur nombre:
int i= 0, nombre_de_variable;
while(env[i++]);
nombre_de_variable= i;

car si env[i] = (char *)0 alors c'est la fin du tableau.

Core Breaker :)
0
cs_payen Messages postés 252 Date d'inscription mercredi 25 octobre 2000 Statut Membre Dernière intervention 1 mai 2005
14 avril 2003 à 00:54
une derniere petit question : existe il un format standard entre les OS de stockage des variables d'environnement? ou du moins, un ordre de recuperation par char ** env ...

encore merci pour ces precisions tres utiles ...
0
CoreBreaker Messages postés 540 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 5 octobre 2007 1
14 avril 2003 à 23:07
Non rien de tout ça mais rien ne t'emêche d'implémenter ton propre système de stockage et ton propre tri a ma connaissance du moins mais rien t'empêche de tester si les variables sont triées en faisant un prog qui visualise les variables par un prog et en jouant sur les commandes set:

int maid(int n, char *args[], char *envTab)
{
char **env;
for(env= envTab; *env; env++)
printf("%s\n", **env);
return 0;
}

puis
set TOTO=toto
set MOMO=momo

ainsi tu verras si c'est TOTO ou MOMO qui apparettra en premer.

Core Breaker :)
0
Rejoignez-nous