Re: liens symboliques

Thomas De Contes <[email protected]>
Newsgroups gmane.comp.lang.ada.france
Message-ID <[email protected]>
Le 4 oct. 09 à 22:09, Laurent GUERBY a écrit :

> On Sun, 2009-10-04 at 19:01 +0200, Thomas De Contes wrote:
>>
>> 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.
>
> La version utilisateur est GNAT.OS_Lib.Is_Symbolic_Link
> c'est cette version qu'il faut utiliser.

Merci :-)




2 questions et 1 requête :



package GNAT.OS_Lib renames System.OS_Lib;

Pourquoi cette simple redirection ?
Je trouve que c'est pas très propre de mettre à disposition des  
utilisateurs des routines qui leur sont destinées mélangées à des  
routines qui semblent destinées uniquement à l'usage interne (comme  
celles qui utilisent C_File_Name)

Est ce qu'il y a une raison précise, ou c'est juste que personne n'a  
pris le temps de reprendre tout GNAT.OS_Lib pour faire le tri ?



    function Is_Symbolic_Link (Name : String) return Boolean;
    --  Determines if the given string, Name, is the path of a  
symbolic link on
    --  systems that support it. Returns True if so, False if the  
path is not a
    --  symbolic link or if the system does not support symbolic links.

Est ce à dire que GNAT.OS_Lib.Is_Symbolic_Link existe sur *tous* les  
gnat, par exemple même sous windows ?
Si oui, ça limite la requête suivante à ceux qui n'ont pas gnat, mais  
pas à ceux qui n'ont pas de liens symboliques :-)



Vu ce qui précède, il me semble souhaitable que tous ceux qui font  
des explorations d'arborescence intègrent ceci dans leur code :

	function sorteDeFichier (dossier : String) return  
Ada.Directories.File_Kind is
		use Ada.Directories;
	begin
		return sf : File_Kind do

			sf:= Kind(dossier);

			if GNAT.OS_Lib.Is_Symbolic_Link(dossier) then
				sf:= Special_File;
			end if;

		end return;
	end sorteDeFichier;

Je ne sais pas quel serais l'équivalent pour ceux qui utilisent par  
exemple Aonix (dont qqn nous a récemment envoyé un msg de soutien)




> Ma recommandation pour un logiciel Ada : faire un paquetage
> mon_logiciel.os_interface

> Cela a l'avantage de contenir les points litigieux a un seul paquetage
> et eviter un etalage de dependance obscures a tout ton logiciel.


:-)



-- 
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.