Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

10 réponses
Avatar
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

10 réponses

Avatar
Luc.Habert.00__arjf
"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 ».
Avatar
Vincent
"Luc Habert" a écrit dans le message de
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 ».


Avatar
Luc.Habert.00__arjf
"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'
Avatar
Vincent
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" a écrit dans le message de
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'


Avatar
Fabien LE LEZ
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 <http://www.tldp.org/LDP/abs/html/>.
Avatar
Vincent
"Fabien LE LEZ" a écrit dans le message de
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 <http://www.tldp.org/LDP/abs/html/>.



Avatar
Vincent
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" a écrit dans le message de
news:48a5e65a$0$867$


"Fabien LE LEZ" a écrit dans le message de
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 <http://www.tldp.org/LDP/abs/html/>.






Avatar
Vincent
oups j'ai rient dit, je suis fatigué :)

bonne nuit



"Vincent" a écrit dans le message de
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" a écrit dans le message de
news:48a5e65a$0$867$


"Fabien LE LEZ" a écrit dans le message de
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 <http://www.tldp.org/LDP/abs/html/>.









Avatar
Luc.Habert.00__arjf
"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.
Avatar
moi-meme
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?)