Se connecter avec
S'enregistrer | Connectez-vous

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

Dernière réponse : dans Programmation


[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
  1. strcpy(commande,"cd $GESFI16");
  2. system(commande);
  3. system("pwd");
  4.  
  5. ...


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
Lassé par la pub ? Créez un compte

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 ...
Lassé par la pub ? Créez un compte