Université Pierre et Marie Curie Master 2016 2017
PR : Travaux sur Machine 2. Toujours des fichiers

Cette séance poursuit l’étude des fonctions sur fichiers.



1 Fonction grep étendue

On considère le fichier liste-rep.c founi en annexe qui liste le contenu d’un répertoire. Ecrire une variante de ce programme qui cherche la chaîne donnée en premier argument dans tous les fichiers du répertoire donné en 2e argument. Il affiche le nom de chaque fichier qui contient la chaîne de caractères recherchée, ou "Aucun fichier valide" si la chaîne n’est présente dans aucun des fichiers du répertoire.

N.B : Vous pouvez utiliser la fonction strstr de la bibliothèque string.h pour trouver si une chaîne de caractères est présente dans une autre.

Exemple d'appel :
bin/extended-grep if src
Fichier à créer : extended-grep.c

2 Inverseur de contenu en utilisant lseek

Ecrire un programme qui prend en argument un nom de fichier, le lit caractère par caractère pour l’écrire de manière inversée dans un autre fichier. Votre programme doit impérativement utiliser la fonction lseek pour modifier l’offset lors de la lecture.

Si le premier fichier contient "fichier ok" alors le deuxième devra contenir "ko reihcif" (on ne testera évidemment pas sur un fichier contenant un palindrome comme radar etc).

Exemple d'appel :
bin/inverser-fichier src/inverser-fichier.c
Fichier à créer : src/inverser-fichier.c

3 Inverseur de contenu en utilisant pread

Même exercice que précédemment, mais en utilisant pread à la place de lseek.

Exemple d'appel :
bin/inverser-pread src/inverser-pread.c
Fichier à créer : src/inverser-pread.c

4 Annexes


liste-rep.c

makefile
Format de l'envoi : extended-grep.c
Répertoires autorisés : inverser-fichier.c inverser-pread.c