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

Résolu/Fermé
Tibo - 18 mai 2005 à 13:45
Jean-François Pillou Messages postés 18707 Date d'inscription lundi 15 février 1999 Statut Webmaster Dernière intervention 16 février 2023 - 20 mai 2005 à 13:13
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 18707 Date d'inscription lundi 15 février 1999 Statut Webmaster Dernière intervention 16 février 2023 63 273
18 mai 2005 à 17:01
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
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 mercredi 18 mai 2005 Statut Membre Dernière intervention 5 août 2010 > Tibo
19 mai 2005 à 00:01
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 mercredi 18 mai 2005 Statut Membre Dernière intervention 5 août 2010
19 mai 2005 à 11:41
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 mercredi 18 mai 2005 Statut Membre Dernière intervention 5 août 2010
19 mai 2005 à 11:44
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
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 18707 Date d'inscription lundi 15 février 1999 Statut Webmaster Dernière intervention 16 février 2023 63 273
20 mai 2005 à 13:13
;-)
0