| 
 TÉLÉCOM SudParis 2ème
        année
 TP Noté CSC4508/M2 du 20/06/14
        (Corrigés) ModalitésDurée : 1 heure 30
 Tous documents autorisés.
 
 Les questions sont indépendantes les unes des autres. Aussi,
        n'hésitez pas à lire tout le sujet avant de commencer pour déterminer
        l'ordre dans lequel vous souhaitez traiter les questions.
 
 Le barème est donné à titre indicatif des poids entre les différentes
        questions.
 
 La « livraison » de votre travail en fin de TP noté se fera par
        remontée sous Moodle (rubrique « TP noté de 3 heures ») du fichier
        d'extension
 tgzconstitué de la manière suivante :
 NB: Si vous êtes plus à l'aise en écrivant vos réponses sur une copie
        plutôt qu'en les tapant sur ordinateur, vous pouvez rendre également
        une copie papier à l'enseignant qui vous surveille. En fin d'épreuve,
        même si vous ne rendez pas de copie, passez voir l'enseignant qui vous
        surveille pour lui signaler explicitement que vous ne rendez pas de
        copie.cd votreRepertoireDeTravailPourCSC4508M2tar cvfz ${USER}.tgz ${USER}_TPNote2014Session2
 
 Préparation
          
	    cd votreRepertoireDeTravailPourCSC4508M2
	    wget http://www-inf.it-sudparis.eu/COURS/CSC4508/Current/Documents/ExoCoursSys/TPNote2014Session2/WWW/tPNote2014Session2.tgz
	    tar xvfz tPNote2014Session2.tgz
	    mv TPNote2014Session2 ${USER}_TPNote2014Session2
	    cd ${USER}_TPNote2014Session2
	  Question 1 : des chiffres et des lettres
	  On souhaite développer une application chiffres_lettres.c qui
	  analyse les caractères saisi par l'utilisateur. Pour cela, on
	  souhaite que le programme effectue les opérations suivantes:
	   
	    lire le flux de caractères arrivant sur l'entrée standardséparer les chiffres et les lettreseffectuer l'opération appropriée en fonction du type de caractère, à savoir :
              sommer les chiffresréaliser un spectre de fréquence pour les lettres afficher le résultat obtenu 
	  Voici un exemple d'exécution du programme:
	 
	  Pour cela, le programme est composé de trois processus entités :
	    $ echo "bonjour 123" |./chiffres_lettresSomme des chiffres: 6
 La lettre la plus frequente est : o
 
 
	  Un squelette de programme vous est fourni (voir le fichier
	chiffres_lettres.c). Ce squelette comporte la création des
	processus ainsi que le traiement des données, mais il manque
	les communications entre les processus.
	Modifiez ce squelette chiffres_lettres.c afin de mettre en
	oeuvre les communications entre les processus de façon à ce
	que le programme fonctionne correctement.
	---beginCorrun distributeur (en charge de la répartition des caractères) ;un additionneur (opérant sur les chiffres) ;un compteur (opérant sur les lettres). 
 
	  Corrigé
	  : ---endCorrchiffres_lettres.corrige.c
 
 Question 2 : find
	  On souhaite disposer d'une application permettant de retrouver un
	  fichier dans une arborescence. Il s'agit, en fait, de développer une
	  application faisant l'équivalent de la commande :
	 
	  
	    $ find . -name <fichier>
	   Question 2.1
	  On souhaite dans un premier temps se contenter de chercher le
	  fichier dans le répertoire courant (sans prendre en compte le
	  contenu des sous-répertoires).
	 
	  Compléter le programme Q2/Q2.1/my_find.c afin qu'il puisse détecter
	  si le répertoire courant contient le fichier recherché.
	---beginCorr Corrigé :
 my_find.Q2.1.corrige.c---endCorr
 Question 2.2
	  On souhaite maintenant que le programme cherche le fichier
	  dans le répertoire courant ainsi que ses
	  sous-répertoire. Voici un exemple d'exécution du programme
	  souhaité:
	 
	  $ ./my_find toto.c./toto.c
 ./src/utils/test/toto.c
 ./exemples/C/toto.c
 
 
	  Compléter le programme Q2/Q2.2/my_find.c afin qu'il ait le
	  comportement souhaité.
	---beginCorr Corrigé :
 my_find.Q2.2.corrige.c---endCorr
 |