FORUM Tom's Hardware » Programmation » C / C++ / Java » [C] changer de répertoire en cours d'exécution
 

[C] changer de répertoire en cours d'exécution

Il y a 378 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici
Ajouter une réponse



 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet : [C] changer de répertoire en cours d'exécution
 


[C] changer de répertoire en cours d'exécution*

Bonjour,

je voudrais être capable de changer de répertoire durant l'exécution d'un programme C.
Il se situe dans /usr/src et voici une partie de son code

Code :
  1. strcpy(commande,"cd $GESFI16" );
  2.   system(commande);
  3.   system("pwd" );
  4. ...



Seulement la commande pwd me retourne "/usr/src", donc je n'ai pas changé de répertoire...
Quelqu'un a une idée?
Merci d'avance.
Joe

Profil : Pointeur
Plus d'informations

et on pourrais savoir pourquoi tu fais ca ??

en cas de fopen tu fais

Code :
  1. sprintf(commande,"%s/fichier",$GESFI16);
  2. fopen(commande,"r" );
  3. ...


---------------
Da Bidz Triad©®™: Bidz Interceptor
.:: Smileyz version 4.2 [050625]::. -- Code source disponible sous licence GPL.
[u
XHTML 1.1 certified
Plus d'informations

C'est tout a fait normal que ça ne marche pas ...
La commande "system" forke et exécute un shell qui ensuite exécute ta commande.
Donc le shell invoqué change bien de répertoire mais pas le processus parent (ton programme).

Si ton programme tourne sous unix, c'est l'appel système chdir qu'il faut utiliser.
Si c'est sous Win32 alors c'est SetCurrentDirectory

Par contre évite d'utiliser system ... c'est extrèmement dangereux car avec de l'injection de chaînes formatées ou l'utilisation de variables d'environnement spécifiques, un utilisateur mal intentionné peut flinguer ton système ...


Message édité par Rodolphe le 16-08-2004 à 09:54:42

Aller à :
Ajouter une réponse
  FORUM Tom's Hardware » Programmation » C / C++ / Java » [C] changer de répertoire en cours d'exécution
 

Annonces Google
Publicité