[C - C++] Changement répertoire console

Résolu
Tibo -  
Jean-François Pillou Messages postés 19261 Date d'inscription   Statut Webmaster Dernière intervention   -
Bonjour,

Voilà je suis sous la Mandrake 9.2 et je programme en C++, mon problème est simple à comprendre :

Dans mon programme, je dois faire un changement de répertoire dans la console. J'ai essayé le : system("cd toto"); mais ca ne marche pas, le répertoire de la console reste inchangé.

Si quelqu'un a la solution ou même une idée ca me sortirait d'une bonne galère.

Merci d'avance à tous...
A voir également:

2 réponses

Jean-François Pillou Messages postés 19261 Date d'inscription   Statut Webmaster Dernière intervention   63 277
 
Dans quelle console souhaites-tu faire ce changement de répertoire ?

C++ fera le changement de répertoire dans son propre environnement d'exécution.
Par ailleurs un chdir(".."); serait plus approprié !

0
Tibo
 
Je ne connaissait tout simplement pas le chdir(" "), je vais essayer ca demain.

En fait mon problème c'est que ca :

system("cd apache");
system("configure");

Ca ne marche pas, il dit que la commande "configure" n'existe pas car le changement de répertoire n'a pas été pris en compte, ou plus pris en compte.

Pour l'instant j'ai bidouillé un truc pas trés propre qui est :

system("source apache_conf");

avec un script nommé "apache_conf" contenant :

cd apache
configure

Ca marche bien mais c'est pas propre donc demain j'essaye le chdir(" "); voir si je peux en faire quelque chose.

En tout cas merci de ta réponse, et je post les résultats demain...
0
lolotux Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   > Tibo
 
Salut,

Je pense que ton ton problème vient du fait que si ton prog est dans :
/home/nimporte

system("cd apache") ne fonctionne que si et seulement si :
/home/nimporte/apache existe !

Il faudrait system("/repertoirecomplet/apache")

A+
0
Tibo > lolotux Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
Le répertoire apache existe bien et ce pour 3 raisons :

1 - C'est la première chose dont je me soit assurée.

2 - Si le répertoire n'existait pas la commande system("cd apache"); me renverrait quelque chose comme no such file or directory.

3 - Enfin le programme et le script étant dans le même répertoire, si le script marche c'est que le répertoire existe bien.

Je pense plutôt que c'est un problème d'environnement d'exécution, mais on m'a donné quelques pistes a essayer, comme par exemple la commande : chdir(" ");

Voilà :)
0
Tibo > lolotux Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
J'ai même oublié la raison la plus importante pour laquelle le répertoire apache existe bien c'est que tout simplement c'est mon programme qui le crée :)
0
Tibo
 
Ben merci à Jeff, il m'a juste fallut remplacer le system("cd apache"); par un chdir("apache"); et tout fonctionne à merveille.

Comme quoi il suffit qu'une commande vous manque pour que Linux soit dépeuplé.

Comprendra qui voudra :)
0
Jean-François Pillou Messages postés 19261 Date d'inscription   Statut Webmaster Dernière intervention   63 277
 
;-)
0