SCR/AL1 - TOME IV. Les librairies internes
4. Fonctions internes : syntaxe
4.1 scr4o : syntax of functions
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