m boulakradeche@esi.dz sites.google.com/site/boulakradeche Septembre 2016
Les supports : Le D Les supports numériques destinés à enregistrer les fichiers (données) sont multiples et leur technologie évolue rapidement. Le D Le D-R inventé en 1979, Peut contenir de 650 Mo pour le D-RW à 700 Mo pour le D-R. Le DVD Le DVD a été lancé en 1995 d une capacité de 4.7 Go en simple couche à 8.5 Go en double couche. Le blu-ray Le DVD va être appelé à se faire remplacer dans les années à venir par le Blu-Ray qui quant à lui à une capacité de 25 à 128 Go. Il a été inventé pour le support des films en HD et maintenant pour des films en 3 Dimension.
Les supports : Le disque dûr Un disque dur est constitué de plusieurs disques rigides en métal, verre ou en céramique appelés plateaux et empilés les uns sur les autres avec une très faible distance d écart. Figure : Structure disque
Les supports : Le disque dûr Figure : Structure disque Les plateaux tournent autour d un axe (entre 4000 et 15000 tours par minute) dans le sens inverse des aiguilles d une montre. Ils sont de 3.5 pouces pour les ordi de bureau et de 2.5 pouces pour les portables. D une capacité de 250 Go à quelques Tera aujourd hui (1 To = 1000 Go)
Les supports : Le disque dûr Le calcul des performances d un disque dur dépend de plusieurs facteurs. Dans le cas d un disque traditionnel, le temps de service moyen d un disque dur est : Temps de service = Temps de recherche + latence rotationnelle + temps de transfert. Latence rotationnelle = 60 / (vitesse de rotation en tours par minute) x 2. Exemple : Pour un DD tournant à 15000 tr/min la latence rotationnelle moyenne est de 2 ms. Il y a aussi les DD qu on appelle externes, ils se connectent par USB
: La clé USB La clé USB : très populaire à cause de leur taille compacte, peu onéreuse, pratique avec de grande capacité. Sujette aux pannes malheureusement. Figure : lé USB Les clés USB 2.0 les plus rapides peuvent atteindre 33 Mo/s en lecture et 26 Mo/s en écriture, mais en pratique les débits sont inférieurs à 10 Mo/s. L USB 3 permet des débits jusqu à 180 Mo/s en lecture et 60 Mo/s en écriture
: Les cartes mémoires Les cartes mémoires : Utilisés beaucoup plus par les appareils mobiles (téléphone, appareil photo, tablette), elles sont de différents types et formats par exemple : Flash ards, SD ards, Micro SD ards, Sony Memory Stick, MM ards, XD ards, Secure Digital ard.
: Les SSD Les SSD solid state drive, remplacera le DD bientôt, c est une mémoire flash (circuits de semiconducteurs) capacité de 32 Mo à plusieurs To. Possède pas mal d avantage par rapport aux disq dûr tel que pas d usure mécanique, le temps d Accès et la consommation électrique. Inconvénient : le nombre de cycle de lecture écriture limité
: Les SSD Le temps d accès en lecture varie entre 70 µs (microseconde, soit 0,07 ms) et 300 µs (soit 0,3 ms) ; le temps d accès en écriture varie entre 50 µs et 740 µs, soit de 10 à 100 fois plus rapide qu un disque dur traditionnel. Le débit des SSD est généralement au-dessus de 200 Mo/s, et de l ordre de 500 Mo/s pour les disques les plus performants, à comparer aux valeurs de l ordre de 50 à 120 Mo/s atteintes par les disques durs traditionnels.
Les bandes magnétiques Avec des performances de l ordre de 160 Mo/s les bandes magnétiques souffrent du mode d Accès unique le séquentiel. Elles sont le support idéal pour l archivage et la sauvegarde des données. ar elles ont un bon rapport prix/densité.
Les fichier et En les fonctions E/S (I/O) de haut niveau sur les fichiers peuvent être classées en 2 catégories en fonction du fichier manipulé : 1 fichier texte 2 fichier binaire En il y a un grand nombre de fonctions pour gérer les E/S des fichiers. Nous verrons dans ce cours comment gérer les E/S de haut niveau en.
opérations sur les fichiers 1 réation d un nouveau fichier 2 L ouverture d un fichier existant 3 La lecture et l écriture des informations dans un fichier 4 Fermeture d un fichier
La déclaration Lorsque on travaille avec un fichier on déclare un pointeur de type fichier FILE *mon fichier Ouverture d un fichier Ouverture d un fichier est effectué en utilisant la fonction bibliothèque fopen (). La syntaxe pour ouvrir un fichier est: ptr fichier = fopen ( fileopen, mode ) Exemple : mon fichier=fopen ( fichier.txt, w ); ton fichier=fopen ( program.c, w ); si le fichier ne se trouve dans le répertoire courant on donne le chemin complet w représente le mode d ouverture du fichier.
Les modes d ouverture mode explication si le fichier existe ou pas r Ouvre pour la lecture. Si le fichier n existe pas, fopen () retourne NULL. w Ouvre pour l écriture. Si le fichier existe, il sera écrasé sinon il sera créé. a Ouvre pour ajouter des données à la fin du fichier. r+ Ouvre pour la lecture et l écriture. w+ Ouvre pour la lecture et l écriture. a+ Ouvre pour la lecture et ajout. Si le fichier n existe pas, il sera créé. Si le fichier n existe pas, fopen () retourne NULL. Si le fichier existe, il sera écrasé sinon il sera créé. Si le fichier n existe pas, il sera créé.
onditions en cas d erreurs Si le mode contient la lettre r, le fichier doit exister, sinon c est une erreur. Si le mode contient la lettre w, le fichier peut, ou peut ne pas, exister. Si le fichier n existe pas, il est créé ; si le fichier existe déjà, son ancien contenu est perdu. Si le mode contient la lettre a, le fichier peut, ou peut ne pas, exister. Si le fichier n existe pas, il est créé ; si le fichier existe déjà, son ancien contenu est conservé.
Fermeture du fichier A la fin des traitements le ou les fichiers doivent être fermés. La fermeture d un fichier est effectué en utilisant la fonction bibliothèque fclose (). fclose (mon fichier); // mon fichier est le pointeur de fichier associé au fichier à fermé. Rappel sur la lecture et l écriture Lors de la lecture les données vont du support(fichier physique) vers les variables en M (fichier logique). Pour l écriture c est l inverse.
Les fonctions fprintf() et fscanf() Les fonctions fprintf() et fscanf() sont l équivalent de printf()et scanf() utilisés pour la console La seule différence en utilisant fprintf() et fscanf() est que, le premier argument est un pointeur vers une structure FILE.
L écriture dans un fichier #include <stdio.h> int main() { int n; FILE *fptr; fptr=fopen("fichier.txt","w"); if(fptr==null) { printf("error!"); exit(1); } printf("enter n: "); scanf("%d",&n); fprintf(fptr,"%d",n); fclose(fptr); return 0; }
La lecture du fichier #include <stdio.h> int main() { int n; FILE *fptr; if ((fptr=fopen("fichier.txt","r"))==null) {printf("error! opening file"); exit(1); } fscanf(fptr,"%d",&n); printf("value of n=%d",n); fclose(fptr); return 0; }
EXERIE #include <stdio.h> int main() { int k; FILE *fptr; char car; if ((fptr=fopen("fichier.txt","w"))==null) {printf("error! opening file"); exit(1); } for (k=0;k<5;k++) { fprintf(fptr,"%d ",k+10); } fclose(fptr); if ((fptr=fopen("fichier.txt","r"))==null) {printf("error! opening file"); exit(2); } for (k=0; k<?? ;k++) { //fscanf(fptr,"%c",&car); car = fgetc(fptr); printf("\n Value of car=%c",car); } fclose(fptr); return 0; }
EXERIE #include <stdio.h> int main() { int k; FILE *fptr; char car; if ((fptr=fopen("fichier.txt","w"))==null) {printf("error! opening file"); exit(1); } for (k=0;k<5;k++) { fprintf(fptr,"%d",k+10); } fclose(fptr); if ((fptr=fopen("fichier.txt","r"))==null) {printf("error! opening file"); exit(2); } k=0; while ((car = fgetc(fptr))!= EOF) {k++;} printf("nombre car = %d ",k); fclose(fptr); return 0; }
EXERIE nombre car = 10
L écriture fputc : écrit un caractère dans le fichier (UN SEUL caractère à la fois) ; fputs : écrit une chaîne dans le fichier ; fprintf : écrit une chaîne formatée dans le fichier, fonctionnement quasi-identique à printf.
La lecture fgetc : lit un caractère ; fgets : lit une chaîne ; fscanf : lit une chaîne formatée.
Se déplacer dans le fichier ftell : indique à quelle position vous êtes actuellement dans le fichier ; long ftell(file* pointeursurfichier); fseek : positionne le curseur à un endroit précis ; La fonction fseek permet de déplacer le curseur d un certain nombre de caractères (indiqué par deplacement) à partir de la position indiquée par origine. int fseek(file* pointeursurfichier, long deplacement, int origine); Quant au nombre origine, on peut mettre comme valeur l une des trois constantes listées ci-dessous : SEEK SET : indique le début du fichier ; SEEK UR : indique la position actuelle du curseur; SEEK END : indique la fin du fichier.
Se déplacer dans le fichier rewind : remet le curseur au début du fichier (c est équivalent à demander à la fonction fseek de positionner le curseur au début). void rewind(file* pointeursurfichier); Exemple de déplacement fseek(fichier, 2, SEEK SET ); 2 car après le début fseek(fichier, 4, SEEK UR); 4 car avant la position courante fseek(fichier, 0, SEEK END); se place à la fin du fichier
Renommer et supprimer rename : renomme un fichier ; int rename(const char* anciennom, const char* nouveaunom); rename( test.txt, test renomme.txt ); remove : supprime un fichier. int remove(const char* fichierasupprimer); remove( test.txt );