[C ++] Changement répertoire console Linux

Résolu/Fermé
Tibo - 18 mai 2005 à 13:55
 Tibo - 19 mai 2005 à 14: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:

4 réponses

mamiemando Messages postés 33078 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 22 avril 2024 7 749
18 mai 2005 à 14:38
Il y a eu une question dans ce genre là il y a quelques jours pour le même problème, mais sur un script shell. Je retrouve plus l'url...

En fait quand tu lances ton programme, le cd se fait, mais quand le programme se termine tu reviens à l'environnement dans lequel tu avais lancé ton programme... Et changer un environnement qui n'est pas celui du programme c'est tout de suite plus chaud.

La question est donc : est-il bien nécessaire de faire ce changement de répertoire ? N'as tu pas moyen de définir une variable te permettant de travailler sur des paths absolus et non relatifs ? Il faudrait que tu donnes plus de précisions sur ce que tu veux faire...
0
Ben en fait dans mon cas, ne pas changer de répertoire ce serait aussi chaud.

Mon programme en C++ est en fait un automatiseur d'installation des serveurs apache, mysql et php. Il configurera tout et copiera les fichiers d'un site intranet.

Pour les installations et configurations j'ai trouvé pas mal de tutorial que je vais suivre, mais bon il y a pas mal de cd, exemple :

$ cd apache
$ ./configure

et si mon programme lance un : ./apache/configure ben ca retourne pas mal d'erreur, donc en cherchant bien je pense que je pourrai réussir à faire le ./apache/configure mais bon j'ai peur que ca me fasse ca à chaque fois...

Donc si je pouvais savoir comment changer de répertoire je pense que ca serait plus rapide.

Extrait du programme :
system("cd apache");
system("./configure");

Et donc même si le programme ne se finit pas, ca ne marche pas, ca me dit qu'il ne connait pas la commande configure et effectivement un pwd permet de s'assurer que le répertoire n'a pas changé.
0
Ok j'ai retrouvé le post dont tu parlé, il conseille l'utilisation de :

$ source script

Donc bon je vais essayé de me débrouillé comme ca...
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
kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
19 mai 2005 à 11:55
j'ai compris :)
0
Merci de ton soutient :)
0