Présentation
Documentation
L'équipe
Sérialisation
 
Programmes
Objets
Libs Utilitaires
Libs Internes
   
 
Editeur
Syntaxes
Windows
Versions
   

SCR/AL1 - TOME III. Les librairies utilitaires

26. Le groupe s_isc

26.18 ISC_copy_1file_resume (file s_dbcgnl.c:2147)

Syntax

ISC_copy_1file_resume(char *from, char *to, int chkcrc)

Description

Copie le fichier from dans le fichier to en minimisant les transferts : si le transfert précédent s'est planté en cours de route, il est repris à son point d'arrêt.

Si from est un fichier qui s'accroît au fil du temps (comme un fichier de log par exemple), seules les nouvelles données sont copiées.

Méthodes

Si les 2 fichiers existent et que le crc des deux fichiers est identique, seules les dates d'accès et de modification sont modifiées. Le mode du fichier est également adapté.

Sinon, si le fichier to.s4~ existe, il est comparé à from. En cas d'égalité, il est mové dans le fichier to. S'il est plus court, on compare les CRC32 des fichiers partiels pour limiter la copie.

Si to.s4~ n'existe pas ou ne correspond plus à from, on compare les CRC du début de from avec celui de to. En cas d'égalité, to est copié dans to.s4~ et ce dernier est complété. Sinon, tout le transfert de from est effectué.

Finalement, le fichier to.s4~ est mové dans to et les dates et heures, ainsi que le mode est fixé à celui de la source.

Sous Linux ou Unix, il n'est pas possible de changer les attributs d'un fichier appartenant à une partition Windows. De même, on ne peut fixer les temps d'accès et de modification sur une partition Windows (FAT32 en tout cas). Il est donc possible qu'une opération ne soit pas complétée parfaitement (mode ou time incorrect) lors d'une copie en Linux vers une partition Windows. Cela n'empêche pas la copie proprement dite d'être effectuée.

Exemple

    ISC_copy_1file_resume("localhost:6000!toto", "tata");
ISC_copy_1file_resume("toto", "192.168.1.2:6000!tata");
ISC_copy_1file_resume("www.xon.be:5555!toto", "192.168.1.2:6000!tata");

Les deux fichiers peut se trouver sur un serveur distant différent. Si le répertoire de to n'existe pas, il est créé.

Valeur retournée

Exemple

    ISC_copy_1file_resume("10.0.0.1:5001!myfile.txt", "myfile.txt", 1);

Voir également

ISC_*()

Copyright © 1998-2015 Jean-Marc Paul and Bernard PAUL - Envoyez vos remarques ou commentaires à bernard@xon.be