Vous êtes sur la page 1sur 2

USTHB Année 2022/2023

Faculté d'Informatique SYS02


LIC. ISIL A & B
TP N°2
(Manipulation de Fichiers sous Linux : Partie I)

L'objectif de ce TP est la manipulation de fichiers à l’aide des appels systèmes.

1. Créez un répertoire TP2 dans votre Home Directory. Placez-vous dans ce répertoire.
Exercice 1
2. Quel est le rôle des drapeaux suivants de l’appel système access() ?

Flag Rôle
F_OK
R_OK
W_OK
X_OK
3. Ecrivez un programme C qui vérifie l’existence du fichier passé en argument.
Exercice 2
1. Quel est le rôle des drapeaux suivants de l’appel système open() ?

Flag Rôle
O_EXEC
O_RDONLY
O_RDWR
O_WRONLY
O_APPEND
O_CREAT
O_TRUNC
2. Avec un éditeur de texte (Ex. gedit), créez un fichier printchar.c contenant le programme C
suivant :

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
int main(int argc, char *argv[]) {

char buf;
int fd;

if(argc == 1)
printf("Manque d'arguments!\nUsage: cat [filename] ...\n");
else {
fd = open(argv[1], O_RDONLY);
if (fd == -1)
printf("Le fichier %s n'existe pas !\n", argv[1]);

1/2
else {
if(read(fd, &buf, 1) != 0) write(1, &buf, 1);
printf("\n");
close(fd);
}
}

return EXIT_SUCCESS;

3. Interprétez les différentes instructions de ce code. Déduisez le rôle de ce programme.


4. Créez l’exécutable printchar et exécutez-le.
5. La commande cat [file...] lit les fichiers dont les chemins d’accès lui sont passés en
arguments et écrit leur contenu sur la sortie standard dans le même ordre. Écrivez ce programme
en utilisant les appels système (open, read, write, close).
Exercice 3
Ecrivez un programme C, que vous nommez taille, qui accepte un nombre arbitraire de nom
de fichiers comme paramètres, ouvre les fichiers, compte le nombre de leurs caractères, et affiche les
noms des fichiers et leurs tailles (exprimées en nombre de caractères) respectives sur la sortie
standard. Le programme doit traiter les erreurs dues à l’ouverture des fichiers et affiche les messages
d’erreur adéquats.

2/2

Vous aimerez peut-être aussi