TP 8 : créateur de fichiers v2

Créateur de fichiers version 2

Avant de commencer ce TD, il faut avoir réécrit le programme collecteur “player.sh” en Python.


Le nouveau programme dibbler-2.py fourni avec cet énoncé permet de lancer plusieurs programmes collecteurs en parallèle, et d’analyser en temps réel les réponses qu’ils envoient afin de vérifier qu’elles sont correctes.


Le programme créateur prend zéro, un ou plusieurs noms de programmes collecteurs en argument, et les lance tous en même temps. Il lit les données envoyées par chacun des programmes collecteurs en les plaçant dans un buffer, et une fois qu’une ligne complète est accumulée dans ce buffer, elle est traitée.


Exercice 1


Le traitement des lignes doit prendre en compte toutes sortes d’erreurs possibles :


  • format incorrect (différent de “numéro:valeur”) ;
  • numéro de fichier invalide (pas encore créé par le programme, ou bien déjà passé) ;
  • valeur incorrecte.

Modifier votre programme collecteur en Python afin qu’il provoque volontairement chacune de ces erreurs afin de vérifier que le programme dibbler.py ne “plante” pas.


Exercice 2


À partir de cet exercice, modifier le dibbler.py pour que son exécution ne dure pas plus de 10 à 20 secondes (diminuer le nombre de fichiers créés et/ou le délai entre les fichiers).


Modifier votre programme collecteur en Python afin qu’il “triche” en effaçant les fichiers au fur et à mesure qu’il les lit, afin de “coincer” les autres programmes.


Comparer le score obtenu par ce programme et les autres programmes.


Exercice 3


Modifier le programme collecteur en Python afin qu’il ne reste pas bloqué si un fichier a été effacé. Il devra mettre en mémoire les fichiers qu’il rencontre, et après chaque parcours de l’arborescence, envoyer les fichiers qu’il a trouvés, dans l’ordre.


Exemple : si le programme doit trouver le fichier n°4, mais qu’il trouve les fichiers 5, 9, 8 et 6, alors il enverra à la fin du parcours les fichiers 5, 6, 8, 9 (dans cet ordre), puis reprendra un parcours de l’arborescence.


Exercice 4


Modifier le programme collecteur afin qu’il trouve les autres programmes collecteurs et leur envoie un signal pour les arrêter.


Essayer de trouver des moyens pour se protéger contre ce genre de méthodes.