Cours de Système : Gestion de Fichiers



Documents pareils
Le système de gestion des fichiers, les entrées/sorties.

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

Système de Gestion de Fichiers

Programmation impérative

Programmation système de commandes en C

Chapitre 3 : Système de gestion de fichiers

Dans le chapitre 1, nous associions aux fichiers ouverts des descripteurs de fichiers par lesquels nous accédions aux fichiers.

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

SYSTÈME DE GESTION DE FICHIERS

Les fichiers. Chapitre 4

Systèmes d Exploitation - ENSIN6U3. Aix-Marseille Université

GESTION DES FICHIERS C/UNIX

Cours 6 : Tubes anonymes et nommés

Programmation système I Les entrées/sorties

TP3 : Manipulation et implantation de systèmes de fichiers 1

Structure fonctionnelle d un SGBD

Il est courant de souhaiter conserver à

1. Systèmes d entrée/sortie 2. Systèmes de fichiers 3. Structure de mémoire de masse (disques)

Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes

Session 8: Android File System

LES SYSTÈMES DE FICHIERS

Le langage C. Séance n 4

Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43

Programmation système en C/C++

Unix/Linux I. 1 ere année DUT. Université marne la vallée

PARAGON Disk Wiper. Guide de l utilisateur. Paragon Technology GmbH, System Programmierung. Copyright Paragon Technology GmbH

ASR3. Partie 4 Le système de fichier. Arnaud Clérentin, IUT d Amiens, département Informatique

Comment configurer Kubuntu

Procédure de restauration F8. Série LoRdi 2012 à Dell V131 V3360 L3330

Programmation C. Apprendre à développer des programmes simples dans le langage C

Cours 14 Les fichiers

Cours Programmation Système

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

La mémoire. Un ordinateur. L'octet. Le bit

Sauvegarde sur un serveur Scribe

Administration de Parc Informatique TP07 : Installation de Linux Debian

La gestion des disques

Systèmes informatiques

Personnes ressources Tice. Académie de Rouen

Retrouver de vieux programmes et jouer sur VirtualBox

1 Lecture de fichiers

INSTALL ATION D UNE D I S T RIBUTION

TD 1 - Installation de système UNIX, partitionnement

Leçon 1 : Les principaux composants d un ordinateur

L assistant Boot Camp pour utiliser aussi Windows sur un Mac sous OS X Yosemite

Partie 7 : Gestion de la mémoire

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Gestion des sauvegardes

Démarrer et quitter... 13

Sur un ordinateur portable ou un All-in-One tactile, la plupart des éléments mentionnés précédemment sont regroupés. 10) 11)

Commandes Linux. Gestion des fichiers et des répertoires. Gestion des droits. Gestion des imprimantes. Formation Use-IT

Boot Camp Guide d installation et de configuration

Les structures de données. Rajae El Ouazzani

Fonctionnalités d Acronis :

Introduction aux Systèmes et aux Réseaux

Clé Flash USB2.0 Acer

Réparer un disque dur passé en RAW

INSTALLATION DE WINDOWS 2000 SERVER POUR BCDI3. par. G.Haberer, A.Peuch, P.Saadé

Systèmes d exploitation

Cours Informatique 1. Monsieur SADOUNI Salheddine

Premiers pas sur l ordinateur Support d initiation

Fonctions De Base D un Système D Exploitation. I- introduction : II- Gestion des processus :

AOLbox. Partage de disque dur Guide d utilisation. Partage de disque dur Guide d utilisation 1

Boîtier disque dur SATA 3,5 pouces Fonction économie d énergie

Cours de Systèmes d Exploitation

Prise en main. Norton Ghost Pour trouver des informations supplémentaires. A propos de Norton Ghost

Initiation. àl algorithmique et à la programmation. en C

MODULE : MAINTENANCE DES STATIONS AVEC OSCAR

Organiser le disque dur Dossiers Fichiers

OpenMediaVault installation

3IS - Système d'exploitation linux - Programmation système

Réparer un disque dur passé en RAW

TIC. Tout d abord. Objectifs. L information et l ordinateur. TC IUT Montpellier

FreeNAS Shere. Par THOREZ Nicolas

INITIATION A L INFORMATIQUE. MODULE : Initiation à l'environnement Windows XP. Table des matières :

Installation d un poste i. Partage et Portage & permissions NTFS

LiveUSB clefisn. Meilland jean claude et Kbida Abdellatif. 16 septembre 2012

Principe. Technologies utilisées. 1. Linux et LVM. Les snapshots (instantannés) sous Linux et FreeBSD. Présentation de LVM. Organisation de LVM

Compression de Données - Algorithme de Huffman Document de Conception

Manuel de System Monitor

Chi rement des postes PC / MAC / LINUX

Introduction à l informatique en BCPST

VMware ESX/ESXi. 1. Les composants d ESX. VMware ESX4 est le cœur de l infrastructure vsphere 4.

L'organisation du système de fichier NTFS est encore plus complexe, fonctionnant un peu à la façon d'une base de données.

Tutoriel Création d une source Cydia et compilation des packages sous Linux

User Manual Version 3.6 Manuel de l Utilisateur Version

Sébastien Geiger IPHC Strasbourg

Linux Partition Mini-HOWTO

Algorithmique et Programmation, IMA

GUIDE DE L UTILISATEUR Recoveo Récupérateur de données

Gestion répartie de données - 1

L informatique en BCPST

Enoncé du TP 8 Système

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski

Le partage du disque dur raccordé à la Bbox avec Windows Vista

Transcription:

Cours de Système : Gestion de Fichiers Bertrand Le cun et Emmanuel Hyon bertrand.le cun{at}u-paris10.fr et Emmanuel.Hyon{at}u-paris10.fr Université Paris Ouest Nanterre 25 octobre 2011 B.L.C. & E.H. (UPO) Gestion des Fichiers 25 octobre 2011 1 / 41

Qu est ce qu un S.G.F.? Définition Système de gestion de fichiers Partie du S.E. qui maintient les données sur les périphériques mémoires (disques, disquettes, clefs USB). Définit la structure d un disque : fichiers, dossiers, etc... Fournit une interface (conviviale) à l utilisateur. Objectifs : Organisation Logique du disque Comment associer les fichiers à un espace sur le disque? Optimiser l utilisation des disques, Placement des données, Minimiser les temps d accès. B.L.C. & E.H. (UPO) Gestion des Fichiers 25 octobre 2011 2 / 41

Différents SGF Windows MS-DOS ou FAT 16 (File Allocation Table) ( W95); FAT32 (W98) NTFS WinFS Joliet (pour les CD-ROM) Unix (like) ufs (unix BSD) ext2fs, ext3fs reiserfs Mac OS HFS iso9660 (pour les CD-ROM) B.L.C. & E.H. (UPO) Gestion des Fichiers 25 octobre 2011 3 / 41

Disque et S.E. Relation Un disque est une unité physique Erreurs, Bad Block, etc.. Différents niveaux d accès Disque Physique (surface, cylindre, secteur) Disque Logique (numéro de block) Fichier Logique (Donnée numéro # dans le fichier ) Le S.E. cache les aspects physiques du disque pour un accès haut niveau (abstraction). Bas niveau : block haut niveau : fichier, dossier, B.L.C. & E.H. (UPO) Gestion des Fichiers 25 octobre 2011 4 / 41

De la bande magnétique à l arborescence L utilisateur vision d une arborescence Description logique des fichiers une suite de blocs contenant des fichiers Organisation logique du disque (rangement des fichiers dans les blocs) Vue d une suite de blocs Structure physique du disque Bande magnétique B.L.C. & E.H. (UPO) Gestion des Fichiers 25 octobre 2011 5 / 41

Organisation logique : comment stocker un fichier? Fichier sur Disque Unité de stockage sur le disque : les blocs Stockage de fichier Petits fichiers (< à la taille d un bloc) Le fichier est dans un bloc. Le bloc ne contient que ce fichier. Gros fichiers : Découpage du fichier en petits bouts de taille<= à un bloc disque. Sauvegarde de ces petits sur les blocs Un problème Quels blocs choisir? B.L.C. & E.H. (UPO) Gestion des Fichiers 25 octobre 2011 6 / 41

Allocation des blocs Au cours du temps... Beaucoup de modifications sur les fichiers. D où Un fichier peut : Apparaître, disparaître Un fichier peut : Grandir, rétrécir Des blocs peuvent devenir libres, occupés... B.L.C. & E.H. (UPO) Gestion des Fichiers 25 octobre 2011 7 / 41

Allocation des blocs Au cours du temps... Beaucoup de modifications sur les fichiers. D où Un fichier peut : Apparaître, disparaître Un fichier peut : Grandir, rétrécir Des blocs peuvent devenir libres, occupés... Décisions sans informations Lorsqu un fichier est créé, le SE ne connaît pas sa taille future. Donc difficile de prendre une décision. B.L.C. & E.H. (UPO) Gestion des Fichiers 25 octobre 2011 7 / 41

Allocation des blocs Au cours du temps... Beaucoup de modifications sur les fichiers. D où Un fichier peut : Apparaître, disparaître Un fichier peut : Grandir, rétrécir Des blocs peuvent devenir libres, occupés... Décisions sans informations Lorsqu un fichier est créé, le SE ne connaît pas sa taille future. Donc difficile de prendre une décision. Allocation des fichiers dans les blocs A la création d un fichier, le SGF doit : Attribuer de l espace sur disque (c est l allocation); Mémoriser son implantation et son organisation sur le disque. Maintenir ces informations en cas de modifications de fichiers. B.L.C. & E.H. (UPO) Gestion des Fichiers 25 octobre 2011 7 / 41

Allocation contiguë Principe Le système choisit parmi les ensembles de blocs libres contigus un ensemble de blocs libres contigus suffisant pour y implanter le fichier. B.L.C. & E.H. (UPO) Gestion des Fichiers 25 octobre 2011 8 / 41

Allocation contiguë Principe Le système choisit parmi les ensembles de blocs libres contigus un ensemble de blocs libres contigus suffisant pour y implanter le fichier. Avantages Accès direct à n importe quelle partie du fichier. Vitesse d accès. B.L.C. & E.H. (UPO) Gestion des Fichiers 25 octobre 2011 8 / 41

Allocation contiguë Principe Le système choisit parmi les ensembles de blocs libres contigus un ensemble de blocs libres contigus suffisant pour y implanter le fichier. Avantages Accès direct à n importe quelle partie du fichier. Vitesse d accès. Inconvénients Des emplacements deviennent trop difficilement utilisables. Si le fichier augmente de taille après modification. B.L.C. & E.H. (UPO) Gestion des Fichiers 25 octobre 2011 8 / 41

Allocation Non contiguë Principe Le fichier est découpé en bloc, les blocs de fichiers sont écrits sur des blocs du disque B.L.C. & E.H. (UPO) Gestion des Fichiers 25 octobre 2011 9 / 41

Allocation Non contiguë Principe Le fichier est découpé en bloc, les blocs de fichiers sont écrits sur des blocs du disque Avantages Rapidité d enregistrement. Possibilité d ajout de blocs si la taille du fichier augmente. B.L.C. & E.H. (UPO) Gestion des Fichiers 25 octobre 2011 9 / 41

Allocation Non contiguë Principe Le fichier est découpé en bloc, les blocs de fichiers sont écrits sur des blocs du disque Avantages Rapidité d enregistrement. Possibilité d ajout de blocs si la taille du fichier augmente. Inconvénients Nécessité de gérer l implantation de chacun des blocs sur le disque : le plus souvent liste chaînée (FAT). B.L.C. & E.H. (UPO) Gestion des Fichiers 25 octobre 2011 9 / 41

Blocs d index (UNIX) Pour stocker la cartographie des blocs Principe On utilise un bloc particulier le bloc d index pour stocker la carte des blocs du fichier (pour chaque fichier). Un bloc est représenté par son adresse. Mais pour les fichiers de grande taille (FAT32 limité à 4Go) La taille de la carte des blocs peut nécessiter plusieurs blocs i.e. le bloc d index n est pas suffisant pour tout contenir. On chaîne entre eux les blocs d index. Blocs d index à plusieurs niveaux Un fichier d index requiert plus d un bloc? Création d un bloc-racine qui pointe sur la suite des blocs d index. (réitération procédé possible). Permet d accéder plus rapidement à la fin des fichiers de grande taille. B.L.C. & E.H. (UPO) Gestion des Fichiers 25 octobre 2011 10 / 41

Blocs d index, I-node (Sous Unix) B.L.C. & E.H. (UPO) Gestion des Fichiers 25 octobre 2011 11 / 41

Description des fichiers par le système Vous êtes bien gentil mais... Je vais pas m amuser à manipuler des listes chaînées!! Structure de description d un fichier A partir de l allocation des blocs comment représenter des fichiers par une structure simple. L association d un nom et d un fichier sur disque est faite à l aide de fichiers spéciaux, les catalogues (ou répertoires ou dossiers). Un catalogue est un enregistrement de taille fixe contenant des entrées qui fournissent : le nom du fichier, un accès à la structure de données décrivant l espace qu il occupe sur le disque, diverses indications système (date, taille, etc.). B.L.C. & E.H. (UPO) Gestion des Fichiers 25 octobre 2011 12 / 41

Catalogue : exemples Sous MsDos la taille d un catalogue est un bloc. Les indications système sont dans l entrée catalogue, ainsi qu un pointeur vers le premier bloc du fichier dans la FAT. Sous Unix Les catalogues reçoivent de l espace disque = fichiers ordinaires. Une entrée (appelée lien) contient 1 nom du fichier 2 un pointeur vers une structure de description : un noeud d information (i-node) qui comporte 1 des indications système : son propriétaire et son groupe; ses droits d accès; ses dates de création, modification, accès... 2 les blocs qu il utilise et l accès aux blocs d index. B.L.C. & E.H. (UPO) Gestion des Fichiers 25 octobre 2011 13 / 41

Liens (Sous Unix) Les liens plus de précisions On peut avoir plusieurs liens vers un même fichier plusieurs entrées de catalogues pointent sur le même i-node La modification d un i-node met à jour les informations dans tous les liens (car le i-node est partagé). L opération d effacement (rm) ne supprime qu un lien. Les données ne sont perdues que lors de la suppression de tous les liens qui pointent sur le i-node. En cas de suppression, il y a récupération du i-node et mise à jour de la structure de l espace libre (i.e. ajout des blocs occupés par le fichier à l espace libre). B.L.C. & E.H. (UPO) Gestion des Fichiers 25 octobre 2011 14 / 41

Accès aux structures de descriptions? Organiser son disque pour accéder aux structures de descriptions? B.L.C. & E.H. (UPO) Gestion des Fichiers 25 octobre 2011 15 / 41

Accès aux structures de descriptions? Organiser son disque pour accéder aux structures de descriptions? Début du disque Début de lecture : premier accès aux structures de données du disque En général, le bloc 0 est réservé au boot. Un bloc (sous Unix : le super-bloc) contient des informations relatives à l organisation du disque (taille, adresse zone système...). B.L.C. & E.H. (UPO) Gestion des Fichiers 25 octobre 2011 15 / 41

Accès aux structures de descriptions? Organiser son disque pour accéder aux structures de descriptions? Début du disque Début de lecture : premier accès aux structures de données du disque En général, le bloc 0 est réservé au boot. Un bloc (sous Unix : le super-bloc) contient des informations relatives à l organisation du disque (taille, adresse zone système...). Une zone système Les premiers noeuds sont réservés à des fichiers système (fichier des mauvais blocs, fichier de l espace libre, catalogue racine du disque,etc.). Sous Unix par exemple, la zone système contient les i-nodes. Sous Dos, zone système est la FAT. Formatage = réécriture zone système + test des blocs (parfois) B.L.C. & E.H. (UPO) Gestion des Fichiers 25 octobre 2011 15 / 41

Description du disque (sous Unix) B.L.C. & E.H. (UPO) Gestion des Fichiers 25 octobre 2011 16 / 41

Détail : Table des inodes et bloc (Linux ext2) table des inodes # typ droit lnk blck 123 d 700 2 3 126 d 750 2 7 140-644 1 8 142-644 2 9 Le bloc 3 152.. 123. 126 Dossier 142 toto.txt Le bloc 8 Ce sont les données du fichier. Elles sont très intéressantes. Le bloc 7 123.. 126. 142 titi.txt 140 tutu.txt Le bloc 9 Ce sont les données d un fichier Elles sont très intéressantes. Super même! B.L.C. & E.H. (UPO) Gestion des Fichiers 25 octobre 2011 17 / 41

Vue utilisateur du système de fichier Un moyen d accès aux fichiers pour l utilisateur Les données sont sur le disque! Le système fournit des fonctions pour y accéder Convivialité comment accéder aux fichier de façon simple et transparente? Efficacité ralentir le moins possible les accès aux fichiers Sécurité accès concurrent, autorisation d accès B.L.C. & E.H. (UPO) Gestion des Fichiers 25 octobre 2011 18 / 41

Vue utilisateur du système de fichier Un moyen d accès aux fichiers pour l utilisateur Les données sont sur le disque! Le système fournit des fonctions pour y accéder Convivialité comment accéder aux fichier de façon simple et transparente? Efficacité ralentir le moins possible les accès aux fichiers Sécurité accès concurrent, autorisation d accès Une interface standard Une vue utilisateur en arbre composée de dossiers (répertoires) et de fichiers. Chemins dans l arborescence (suite de liens) B.L.C. & E.H. (UPO) Gestion des Fichiers 25 octobre 2011 18 / 41

Vue utilisateur et montage Construction de la vue utilisateur La vue utilisateur est construite par le système au démarrage, c est le montage ou mount. La vue utilisateur peut être modifiée à n importe quel moment (insertion cdrom par ex). Le montage consiste à associer : répertoire racine d un disque chemin dans l arborescence Cette association entre tous les disques disponibles et le nom logique de leur répertoire racine est inscrite dans une table (la table des volumes montés). Le disque monté sur le répertoire / contient donc la racine du système de fichiers. B.L.C. & E.H. (UPO) Gestion des Fichiers 25 octobre 2011 19 / 41

Montage de partitions Savoir ce qui est monté actuellement mount -l ou more /etc/mtab Pour monter un périphérique (en root) mount -t type fichier périphérique point de montage Savoir comment les périphériques vont être montés : le fichier fstab B.L.C. & E.H. (UPO) Gestion des Fichiers 25 octobre 2011 20 / 41

Montage de partitions Savoir ce qui est monté actuellement mount -l ou more /etc/mtab Pour monter un périphérique (en root) mount -t type fichier périphérique point de montage Savoir comment les périphériques vont être montés : le fichier fstab #<file system> <mount point> <type> <options> <dump> <pass> proc /proc proc defaults 0 0 sysfs /sys sysfs defaults 0 0 /dev/sda5 / ext3 defaults,errors=remount-ro 0 1 /dev/sda6 /home ext3 defaults 0 2 /dev/sda2 /windows2 vfat defaults, iocharset=iso8859-15 0 0 /dev/sda1 /windows1 ntfs ro,auto,umask=2,gid=1001 0 0 /dev/sda3 none swap sw 0 0 /dev/scd0 /media/cdrom0 udf,iso9660 user,noauto 0 0 B.L.C. & E.H. (UPO) Gestion des Fichiers 25 octobre 2011 20 / 41

Représentation du montage associé 5eme partition (/dev/sda5) / /media /home /proc /sys /windows1 /windows2 /media/usb /media/cdrom /home/ehyon /home/blec 6eme partition (/dev/sda6) 1ere partition du disque (/dev/sda1) 2eme partition du disque (/dev/sda2) B.L.C. & E.H. (UPO) Gestion des Fichiers 25 octobre 2011 21 / 41

Mais qu est ce qu un fichier? Il y a différents types de fichiers Les Fichiers Réguliers Fichiers de données. Contenu : une suite de caractères sans organisation particulière. Caractéristique spéciale : la taille. Les Répertoires Fichiers réguliers et fichiers spéciaux. Contenu : une structure logique associant noms internes noms externes. Fichier spécial car Appel système pour création. Les Fichiers Spéciaux Fichiers associés aux ressources du système (répertoire /dev). Les tubes nommés. Les liens symboliques. B.L.C. & E.H. (UPO) Gestion des Fichiers 25 octobre 2011 22 / 41

Les fichiers spéciaux Il y a différents types de fichiers spéciaux Les fichiers à usages logiques et non physiques liens symboliques, pseudo-terminaux, sockets, tubes nommés (interface entre disques) Les fichiers physiques, pour communiquer avec des périphériques : matériels physiques connectés à l ordinateur (souris écran réseaux). pseudo-périphériques (ou périphérique virtuel) : entrées gérées comme un périphérique mais non associées directement à un élément physique (ex écrans virtuels écran, partitions du disque disque). B.L.C. & E.H. (UPO) Gestion des Fichiers 25 octobre 2011 23 / 41

Fichiers spéciaux II Justification des fichiers spéciaux Les fichiers spéciaux ne sont manipulables que par l intermédiaire du système. UNIX communique avec les périphériques (virtuels ou non) par l intermédiaire de fichiers d interface : On accède à un périphérique comme on accède à un fichier. Les fichiers ne contiennent pas de données, mais spécifient la manière de communiquer avec le périphérique en question. Ce pilote de périphériques est une fonction du système. Il permet de manipuler les périphériques via les opérations classiques autorisées par les inodes : open, read, write, close. B.L.C. & E.H. (UPO) Gestion des Fichiers 25 octobre 2011 24 / 41

Les fichiers spéciaux III le répertoire /dev brw-rw---- 1 root disk 1, 0 2007-09-20 13:51 ram0 brw-rw---- 1 root disk 8, 6 2007-09-20 11:51 sda6 crw-rw-rw- 1 root root 5, 0 2007-09-20 11:51 tty Deux manières de communiquer Fichier spécial en mode bloc. Transfère les données vers le périphérique (disques durs, CD-ROM) en utilisant les buffers du système (accélération des transferts). Un périphérique qui peut être accédé avec un fichier spécial en mode bloc peut aussi être accédé par un fichier Fichier en mode caractère. Transfère les données vers le périphérique (raw devices : imprimantes, l écran) sous forme de flux (un caractère à la fois) sans utiliser de buffer. B.L.C. & E.H. (UPO) Gestion des Fichiers 25 octobre 2011 25 / 41

Liens symboliques Définition Un lien symbolique est un accès indirect au fichier : Une référence à un autre lien, un lien secondaire sur le fichier correspondant. Différence avec le lien physique : il est possible d effacer le fichier (effacer tous ses liens physiques) sans toucher aux liens symboliques (qui deviennent alors en quelque sorte orphelins : on parle de liens brisés). Nécessaire pour faire des liens sur des partitions différentes Manipulation Une commande pour la manipulation des liens : ln -s B.L.C. & E.H. (UPO) Gestion des Fichiers 25 octobre 2011 26 / 41

Accès aux fichiers Comment accéder au fichier lors de programmes Quels moyens le système met à disposition pour manipuler le fichier? Flux de données : Lien Disque Physique et RAM Transmission des infos du périphérique en provenance ou vers la mémoire vive est un flux d octets. Les opérations sur les flux passent par une mémoire tampon ( buffer ). Une instruction d écriture est une écriture dans le buffer. Ecriture sur disque quand le tampon est plein (ou sur instruction). Nécessité d une association entre le flux de données et le fichier (spécial ou non). Grosso modo : programme écrit (ou lit) dans le tampon tandis que le S.E se charge de E/S directement sur le périphérique. B.L.C. & E.H. (UPO) Gestion des Fichiers 25 octobre 2011 27 / 41

Accès aux fichiers (C/Unix) 2 niveaux d accès aux fichiers. Accès au fichier signifie manipulation accès au buffer. Manipulation haut niveau : Manipulation de fichiers Utilisation de pointeurs de fichiers du type FILE* Utilisation d un buffer dans l espace du processus et appel système de niveau 2 pour manipuler ce tampon. Fonctions : fopen, fclose et autres contenues dans stdio.h. Manipulation bas niveau : Accès aux fichiers Utilisation d un descripteur de fichier. Utilisation des buffers systèmes. Fonctions open, read, write et autres fonctions manipulant des descripteur de fichiers. B.L.C. & E.H. (UPO) Gestion des Fichiers 25 octobre 2011 28 / 41

Accès de haut niveau (1) Structure FILE Les informations de l association flux programme sont décrites dans une structure FILE (dans stdio.h). Dans le programme on gère un pointeur sur cette structure et le fichier sera identifié par ce pointeur. Différents types de fichiers les fichiers binaires : Fichiers contiennent le codage machine (le codage en binaire) des données. Gain de place les fichiers textes : Fichiers formatés au format ASCII (Chaîne de caractère), i.e. un entier apparaîtra sous sa traduction en caractères. Grande Portabilité B.L.C. & E.H. (UPO) Gestion des Fichiers 25 octobre 2011 29 / 41

Accès de haut niveau (2) Ouverture d un fichier Création de l association C est la commande fopen. FILE *fopen(char *nom,char *name) La fonction renvoie : Une variable de type FILE* et ouvre le fichier en paramètre. Le pointeur NULL si l ouverture ne se déroule pas normalement. Et prend comme arguments 1 Le nom du fichier sous la forme d une chaîne de caractères. 2 Une chaîne de caractères qui spécifie le mode d accès au fichier. B.L.C. & E.H. (UPO) Gestion des Fichiers 25 octobre 2011 30 / 41

Accès haut niveau (3) Mode d accès Mode d accès et comportements Pour les fichiers textes Mode Action Conditions r lecture (read) Le fichier doit exister w écriture (write) Le fichier va être créé. S il existe l ancien fichier sera effacé par le nouveau fichier a écriture à la fin (append) Les données vont être placées à la fin du fichier. S il n existe pas sera créé. r+ lecture/écriture w+ lecture/écriture a+ lecture/écriture à la fin B.L.C. & E.H. (UPO) Gestion des Fichiers 25 octobre 2011 31 / 41

Accès haut niveau (4) Exemple Un exemple d ouverture d un fichier examen.txt à lire sur la clef USB (lecteur D sous Windows). #include <stdio.h> main(){ FILE *fichier; } fichier=fopen( E:\\examen.txt, r ); if (fichier == NULL){ printf( j arrive pas à lire ); exit(1); } B.L.C. & E.H. (UPO) Gestion des Fichiers 25 octobre 2011 32 / 41

Accès de haut niveau (5) Autres opérations Fermeture La fonction est fclose(flot) où flot est de type *FILE donné par la fonction fopen(). Purge des tampons (flush). Ne pas fermer les fichiers peut provoquer des erreurs. Lecture Ecriture A l aide des fonctions fprintf, fscanf similaires à printf, scanf et adjonction d un flux. fscanf (flot, formatage,expr1,...,exprn). fprintf(flot, formatage,expr1,...,exprn). B.L.C. & E.H. (UPO) Gestion des Fichiers 25 octobre 2011 33 / 41

Accès de bas niveau (1) Les descripteurs Les descripteurs concernent les appels systèmes associés à l utilisation de fichiers. Ils permettent les manipulations de bas niveau avec des écritures brutes (sans formatage). Un descripteur est une interface utilisateur présente sous la forme d un entier. Il correspond à un numéro de ligne dans une table (cf cours processus) Il fait référence au fichier dans le programme. Les en-têtes nécessaires Pour les tailles : unistd.h. Pour être cohérent avec POSIX : sys/types.h. Pour les droits sys/stat.h. Pour les modes d ouvertures : fcntl.h. B.L.C. & E.H. (UPO) Gestion des Fichiers 25 octobre 2011 34 / 41

Accès de bas niveau (2) Ouverture d un accès Primitive open La primitive open() permet d ouvrir un fichier à partir de sa référence. int open(char *ref, int mode,... mode t droit); Paramètres et comportement *ref : Référence (chemin) du fichier ou du tube nommé à ouvrir. mode : Mode d ouverture du fichier. droit : (optionnel) droits des fichiers si création (sinon ce sont les droits par défauts de l utilisateur) Cette primitive retourne : en cas de succès : un descripteur valide (i.e. un entier positif). en cas d échec : 1. Cette primitive peut être bloquante. B.L.C. & E.H. (UPO) Gestion des Fichiers 25 octobre 2011 35 / 41

Accès de bas niveau (3) mode d accès Modes d ouverture Le mode d ouverture résulte d un ou binaire ( ) sur un ensemble d options qui sont : Mode Action Conditions O RDONLY ouverture en lecture seule Le fichier doit exister l user doit avoir droit de lecture O WRONLY ouverture en écriture seule Le fichier doit exister O RDWR écriture et lecture O APPEND Force l écriture à la fin O CREAT Création du fichier si n existe pas. O TRUNC le fichier est rendu vide à l ouverture B.L.C. & E.H. (UPO) Gestion des Fichiers 25 octobre 2011 36 / 41

Accès de bas niveau (4) Lecture Ecriture Les appels système read et write Lire read écrire write des données dans un fichier préalablement ouvert (i.e. représenté par un descripteur). int read(int desc, void *buf, size t nbytes) int write(int desc, void *buf, size t nbytes) Paramètres desc : descripteur valide sur le fichier dans lequel les données sont lues (écrites). *buf : un pointeur sur une zone mémoire dans laquelle les données (écrites) sont stockées. Zone mémoire qui doit être allouée (via un tableau par ex.). Type void * : données lues (écrites) octet par octet (pas interprétation ni formatage). nbytes : nombre d octets que l appel va tenter de lire. Le type size t est équivalent à un type int. B.L.C. & E.H. (UPO) Gestion des Fichiers 25 octobre 2011 37 / 41

Accès de bas niveau (5) Lecture Ecriture Valeur retournée par read et write Succès : le nombre d octets effectivement lus. Fin du fichier (pour le read()) : 0 est retourné (en effet il n y a plus de données disponibles). Erreur : retourne 1. B.L.C. & E.H. (UPO) Gestion des Fichiers 25 octobre 2011 38 / 41

Accès de bas niveau (6) close l appel système close() Permet de fermer un descripteur et de libérer les ressources associées. int close(int desc); Paramètre : desc : descripteur à fermer. Retour : 0 : en cas de succès -1 : en cas d échec Si oubli de fermeture, le S.E. détruira, en fin de programme, les ressources allouées pour ce fichier. Très préférable de fermer explicitement les fichiers qui ne sont plus utilisés (évite les problèmes). B.L.C. & E.H. (UPO) Gestion des Fichiers 25 octobre 2011 39 / 41

Accès de bas niveau (7) Exemple void main(){ int desc; int data; int len; desc = open("resultat", O WRONLY O CREAT, 0666); if(desc == -1) printf("erreur pour ouverture du fichier Resultat"); else{ data = 3; len = write(desc,&data,sizeof(data)); if (len == sizeof(data)) printf("la donnee a bien ete ecrite"); fclose(desc); } } B.L.C. & E.H. (UPO) Gestion des Fichiers 25 octobre 2011 40 / 41

Accès direct Position dans le fichier L offset d un descripteur est la position de la prochaine opération dans le fichier ouvert. Appels système : lseek et fseek Utilisation bas niveau avec librairies sys/types.h et unistd.h. lseek(int desc,off t offset, int whence) Utilisation haut niveau avec librairies stdio.h fseek(file *,off t offset, int whence) desc le descripteur du fichier (ou le pointeur sur FILE) offset le déplacement voulu (sous la forme d un entier casté) whence point de référence : SEEK SET : offset absolu SEEK CUR : offset relatif à la position courante SEEK END : offset relatif à la fin B.L.C. & E.H. (UPO) Gestion des Fichiers 25 octobre 2011 41 / 41