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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.