Re: liens symboliques
Thomas De Contes <[email protected]>
| Newsgroups | gmane.comp.lang.ada.france |
|---|---|
| Message-ID | <[email protected]> |
Sachant que
- d'une part, la norme ADA recommande de faire apparaître les liens
symboliques comme des fichiers spéciaux mais n'a pas les moyens de
l'imposer
- d'autre part, au moins gnat sous ubuntu et sous mac os x (ça en
fait deja 2) ont décidé de ne pas suivre ces recommandations
(et de faire apparaître les liens symboliques d'une manière qui fait
qu'on a de fortes chances de courir à de graves ennuis si on
programme sans tenir compte de leur existence, jusqu'à boucler à
l'infini),
les questions suivantes restent d'actualité :
Le 11 nov. 08 à 16:39, Thomas De Contes a écrit :
> J'ai trouvé System.OS_Lib.Is_Symbolic_Link
> Mais il me semble qu'il faut absolument éviter d'utiliser System.* ,
> non ? parce que ça risque de ne pas être portable ? Je ne me souviens
> plus exactement.
>
>
> Sinon, grâce à la définition de System.OS_Lib.Normalize_Pathname j'ai
> compris ce que fait Ada.Directories.Full_Name exactement :-)
> (Est ce que ce comportement est universel ?)
>
> En conséquence, même s'il n'y a pas de Is_Symbolic_Link dans
> Ada.Directories, j'ai eu l'idée d'une formule qui permet de
> déterminer si un fichier ou dossier donné est un lien symbolique ou
> pas :
>
> Full_Name(Containing_Directory(fichier)) = Containing_Directory
> (Full_Name(fichier))
>
> Qu'en pensez vous ? :-)
> Est ce que c'est la "bonne" formule ? ou ça laisse passer des cas
> particuliers, ou ... ?
> Est ce que vous pensez que ça sera suffisamment fiable ?
et je pense utiliser cette formule pour ignorer les liens symboliques
(faire comme s'ils n'existaient pas)
Je sollicite à nouveau vos avis sur cette question :-)
(si vous souhaitez insister pour que j'utilise FLORIST, merci
d'expliquer pourquoi en tenant compte de mes derniers msgs, et aussi
ce qu'il y a à faire pour que mon logiciel puisse continuer à être
portable sur toute autre plate-forme)
Par ailleurs, ça ne résout pas le problème qui fait que qqn qui
programme sous un système qui ne connaît pas les liens symboliques
n'aura jamais l'idée d'utiliser ce genre de formule (normal), et que
quand je vais essayer de faire marcher son logiciel chez moi ... je
vais avoir des problèmes ...
Autant les liens durs et les "mount", à ma connaissance, sont plutôt
rares, autant les liens symboliques, au contraire, sont extrêmement
fréquents !
Alors à votre avis, comment est ce que je devrais faire ?
Est ce qu'à chaque fois que je veux faire explorer une arborescence
par un logiciel en ADA, juste avant il faudrait que je fasse un
find mon-arborescence -type f -o -type d -o -exec ls -Fd {} \;
et que je fasse en sorte qu'il n'y ait plus un seul lien symbolique,
pour que le logiciel en ADA n'en rencontre pas ? fastidieux, non ? :-/
--
Téléassistance / Télémaintenance
http://www.portparallele.com/ThomasDECONTES/
_______________________________________________
Site WWW de l'association Ada-France: http://www.ada-france.org/
[email protected]
http://www.ada-france.org/mailman/listinfo/ada-france