Comment contourner un bug ? ( erreur sur nom de chemin)

Le
Vincent
Bonjour,

J'utilise un logiciel dont je n'ai pas les sources pour le moment.

Ce logiciel demande un chemin de répertoire par exemple je donnne
/home/toto/test ou /home/toto/test/

Le logiciel interprete : /home/toto le enfin de chemin fait dire à
l'application que le chemin n'existe pas.

j'ai essayé de faire cd /home/toto et en effet y a comme un blème.

En attendant la correction du bug est il possible de le contrer ? un lien ou
un truc qui renvoi dans le bon répertoire ?

merci

Vincent
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Luc.Habert.00__arjf
Le #16555621
"Vincent" :

Ce logiciel demande un chemin de répertoire par exemple je donnne
/home/toto/test ou /home/toto/test/

Le logiciel interprete : /home/toto le enfin de chemin fait dire à
l'application que le chemin n'existe pas.



Je ne suis pas sûr de comprendre. Tu lui dis bien « /home/toto/test » et il
comprend « /home/toto » ?

j'ai essayé de faire cd /home/toto et en effet y a comme un blème.



Ça serait « cd /home/toto\ », sinon le shell interprète le . Mais je ne
comprends pas pourquoi tu veux faire ça si le répertoire s'appelle
« /home/toto ».
Vincent
Le #16555801
"Luc Habert" news:g84ige$1bf0$
"Vincent" :

Ce logiciel demande un chemin de répertoire par exemple je donnne
/home/toto/test ou /home/toto/test/

Le logiciel interprete : /home/toto le enfin de chemin fait dire
à
l'application que le chemin n'existe pas.



Je ne suis pas sûr de comprendre. Tu lui dis bien « /home/toto/test » et
il
comprend « /home/toto » ?



OUI exactement, en fait je lui donne /home/toto/test
il crée le répertoire resultats ce qui donne /home/toto/test/resultats/
aprés des calculs il écrits des fichiers dans /home/toto/test/resultats ,
avant je pense qu'il fait un cd
mais il fait cd /home/toto/test/resultats et la il cri car il ne trouve pas
/home/toto/test/resultats

Ne ma demande pas pourquoi :) j'en sais rien , mais je suis bloqué



j'ai essayé de faire cd /home/toto et en effet y a comme un blème.



Ça serait « cd /home/toto\ », sinon le shell interprète le . Mais je ne
comprends pas pourquoi tu veux faire ça si le répertoire s'appelle
« /home/toto ».


Luc.Habert.00__arjf
Le #16555951
"Vincent" :

OUI exactement, en fait je lui donne /home/toto/test
il crée le répertoire resultats ce qui donne /home/toto/test/resultats/
aprés des calculs il écrits des fichiers dans /home/toto/test/resultats ,
avant je pense qu'il fait un cd
mais il fait cd /home/toto/test/resultats et la il cri car il ne trouve pas
/home/toto/test/resultats



OK, je comprends mieux. Dans ton message d'origine, tu parlais de
« /home/toto », ce n'est pas la même chose. Bon, ça ressemble à un
programme écrit sous windows, puis porté avec les pieds sous unix, ils ont
oublié de changer un en /. La solution la plus simple consiste
effectivement à faire un symlink :

ln -s resultats '/home/toto/test/resultats'
Vincent
Le #16556361
oui bien vu, ce programme est issu de windows ( réecrit pour linux avec des
ratés (: )

Ton exemple ne marche pas , si je fais : ls /home/toto/test/resultats

si je fais chemin='/home/toto/test/resultats'
puis ls $chemin , là c'est ok :)

Mais je ne sais pas bien ce que fait le programme.

c'est un peu galère, en fait dans son log il dit :
Répertoire FTP utilisé : /home/toto/test/resultats en plus il bosse par
ftp !!!!!!

Via un outil ftp ( FireFtp de Mozilla ) sous windows, je vois bien le
lien(sans le ) et le répertoire normal, les deux montrent bien les mêmes
fichiers !




"Luc Habert" news:g84k31$1ibd$
"Vincent" :

OUI exactement, en fait je lui donne /home/toto/test
il crée le répertoire resultats ce qui donne /home/toto/test/resultats/
aprés des calculs il écrits des fichiers dans /home/toto/test/resultats ,
avant je pense qu'il fait un cd
mais il fait cd /home/toto/test/resultats et la il cri car il ne trouve
pas
/home/toto/test/resultats



OK, je comprends mieux. Dans ton message d'origine, tu parlais de
« /home/toto », ce n'est pas la même chose. Bon, ça ressemble à un
programme écrit sous windows, puis porté avec les pieds sous unix, ils ont
oublié de changer un en /. La solution la plus simple consiste
effectivement à faire un symlink :

ln -s resultats '/home/toto/test/resultats'


Fabien LE LEZ
Le #16556351
On Fri, 15 Aug 2008 22:13:04 +0200, "Vincent"

Ton exemple ne marche pas , si je fais : ls /home/toto/test/resultats



Si tu fais ça, c'est normal que ça ne donne rien : l'antislash est un
caractère d'échappement, qui modifie le caractère suivant.

Essaie plutôt

ls '/home/toto/test/resultats'

Cf aussi
Vincent
Le #16556461
"Fabien LE LEZ" news:
On Fri, 15 Aug 2008 22:13:04 +0200, "Vincent"

Ton exemple ne marche pas , si je fais : ls /home/toto/test/resultats



Si tu fais ça, c'est normal que ça ne donne rien : l'antislash est un
caractère d'échappement, qui modifie le caractère suivant.

Essaie plutôt

ls '/home/toto/test/resultats'



oui là ça marche, mais pas avec mon programme :)
j'ai essayé avec un client ftp ( console ), là quand je me connecte, je vois
bien resultats et resultats et par ftp
cd resultats tombe bien dans resultat ....

je me demande ce que fait ce programme. Je sais qu'il ne bosse par ftp, dur
dur

Merci pour ton aide, je vais continuer à refléchir sur ta piste ( le lien )

Vincent



Cf aussi


Vincent
Le #16556561
existe t-il un caractère particulier qui ne fasse rien ?

j'ai remarqué un truc :

si je donne /home/toto/test/ il fait /home/toto/test/resultats

mais si je donne /home/toto/test il donne /home/toto/testresultats/
!!!!! incroyable
si moi je donne il donne / , peut être que si je remplace par un
caractère null il vas donner le bon chemin ? :)




"Vincent" news:48a5e65a$0$867$


"Fabien LE LEZ" news:
On Fri, 15 Aug 2008 22:13:04 +0200, "Vincent"

Ton exemple ne marche pas , si je fais : ls /home/toto/test/resultats



Si tu fais ça, c'est normal que ça ne donne rien : l'antislash est un
caractère d'échappement, qui modifie le caractère suivant.

Essaie plutôt

ls '/home/toto/test/resultats'



oui là ça marche, mais pas avec mon programme :)
j'ai essayé avec un client ftp ( console ), là quand je me connecte, je
vois bien resultats et resultats et par ftp
cd resultats tombe bien dans resultat ....

je me demande ce que fait ce programme. Je sais qu'il ne bosse par ftp,
dur dur

Merci pour ton aide, je vais continuer à refléchir sur ta piste ( le
lien )

Vincent



Cf aussi





Vincent
Le #16556551
oups j'ai rient dit, je suis fatigué :)

bonne nuit



"Vincent" news:48a5e7b5$0$915$

existe t-il un caractère particulier qui ne fasse rien ?

j'ai remarqué un truc :

si je donne /home/toto/test/ il fait /home/toto/test/resultats

mais si je donne /home/toto/test il donne /home/toto/testresultats/
!!!!! incroyable
si moi je donne il donne / , peut être que si je remplace par un
caractère null il vas donner le bon chemin ? :)




"Vincent" news:48a5e65a$0$867$


"Fabien LE LEZ" news:
On Fri, 15 Aug 2008 22:13:04 +0200, "Vincent"

Ton exemple ne marche pas , si je fais : ls /home/toto/test/resultats



Si tu fais ça, c'est normal que ça ne donne rien : l'antislash est un
caractère d'échappement, qui modifie le caractère suivant.

Essaie plutôt

ls '/home/toto/test/resultats'



oui là ça marche, mais pas avec mon programme :)
j'ai essayé avec un client ftp ( console ), là quand je me connecte, je
vois bien resultats et resultats et par ftp
cd resultats tombe bien dans resultat ....

je me demande ce que fait ce programme. Je sais qu'il ne bosse par ftp,
dur dur

Merci pour ton aide, je vais continuer à refléchir sur ta piste ( le
lien )

Vincent



Cf aussi








Luc.Habert.00__arjf
Le #16556541
"Vincent" :

Ton exemple ne marche pas , si je fais : ls /home/toto/test/resultats



Normal, le est un caractère spécial du shell. C'est pour ça que dans la
commande que je te donnais :

ln -s resultats '/home/toto/test/resultats'

j'ai inclus le dernier argument entre apostrophes, ce qui a pour effet
d'inactiver tous les caractères spéciaux à l'intérieur (sauf les
apostrophes, bien sûr; si tu veux mettre une apostrophe, il ne faut pas être
entre apostrophes et mettre un « ' »).

si je fais chemin='/home/toto/test/resultats'
puis ls $chemin , là c'est ok :)



Oui, tu pouvais faire

ls '/home/toto/test/resultats'

directement.

Mais je ne sais pas bien ce que fait le programme.



Dans ces cas-là, on dégaine strace. C'est un outil qui logue tous les appels
systèmes effectués par un programme. Ça demande un peu d'entrainement pour
comprendre le log, mais ça torsche. Tu fais quelque chose comme :

strace -f -o ploum leprogramme ses arguments

, et ça te pond le log dans le fichier « ploum ». Cherche les occurences de
« resultas » dedans.

Une cause possible de ton problème est que le programme lance un shell et
lui fait exécuter une commande contenant le nom du fichier, sans protéger
les caractères spéciaux.

Via un outil ftp ( FireFtp de Mozilla ) sous windows, je vois bien le
lien(sans le ) et le répertoire normal, les deux montrent bien les mêmes
fichiers !



Mouais, le disparait quelque part, mais ça doit juste être une question
d'affichage.
moi-meme
Le #16562151
Vincent wrote:

J'utilise un logiciel dont je n'ai pas les sources pour le moment.



contourner en utilisant un autre logiciel (s'il existe?)
Publicité
Poster une réponse
Anonyme