La gestione dei file in C
|
|
- Isidoro Motta
- 6 anni fa
- Visualizzazioni
Transcript
1 Gestione dei file
2 La gestione dei file in C Il file è un astrazione molto ampia nella descrizione di un sistema informatico nastro di I/O supporto di comunicazione macchina/ambiente di ogni tipo (sensori, attuatori,.) zona di memoria di massa È un supporto di memoria, ma profondamente diverso dalla memoria centrale In C i file sono definiti nella standard library I file sono strutture sostanzialmente sequenziali, anche se, quando è possibile, permettono un accesso diretto ai vari record
3 Flussi, file e programmi C Un programma C che desidera utilizzare un file deve aprire un flusso di comunicazione Il flusso di comunicazione viene chiuso chiudendo il file utilizzato Le operazioni di input/output sono sia le operazioni che coinvolgono un dispositivo di ingresso/uscita sia le operazioni di memorizzazione permanente Un oggetto di tipo FILE contiene diversi campi: modalità di utilizzo del file (lettura, scrittura o lettura e scrittura) posizione corrente sul file (punta al prossimo byte da leggere o scrivere sul file) indicatore di errore indicatore di end-of-file (eof)
4 Apertura di un file Bisogna dichiarare una variabile di tipo puntatore a FILE e chiedere l apertura del flusso tramite una funzione di libreria (fopen) Il puntatore serve al programma per far riferimento al file corrispondente La chiusura del flusso (tramite fclose) impedisce ulteriori riferimenti al file Un flusso di comunicazione può essere Binario (sequenza di byte) o di tipo testo (sequenza di caratteri)
5 File e sistema operativo Ogni variabile che punta a un file deve essere definita come segue FILE *fp; Una tabella file aperti FILE TabellaFileAperti[MaxNumFileGestibili]; è gestita dal SO (file system) e costituisce il ponte tra il programma e la macchina astratta gestita dal SO
6 File e sistema operativo Variabili puntatore stdin stdout stderr f1 f2 f3 Tabella dei file aperti nomefile: modouso: poscorr:. nomefile: modouso: poscorr:. nomefile: modouso: poscorr:. nomefile: FileTre modouso: poscorr:. nomefile: FileUno modouso: poscorr:. nomefile: FileDue modouso: poscorr:. File StandardInput StandardInput StandardError FileUno FileDue FileTre
7 Flussi standard Tre flussi standard vengono automaticamente aperti quando inizia l esecuzione di un programma: stdin, stdout e stderr Normalmente questi tre flussi rappresentano il video del terminale (stdout e stderr) la tastiera del terminale (stdin) printf e scanf utilizzano questi flussi standard
8 Operazioni di gestione dei file FILE *fopen(nomefile, modalità) Richiede in ingresso il nome del file da aprire e la modalità di apertura r (lettura in modalità testo, posizionamento all inizio del file), w (scrittura in modalità testo, posizionamento all inizio del file), a (scrittura in modalità testo a partire dalla fine del file), rb, wb e ab (lettura, scrittura e scrittura a fine file con modalità binaria), r+, w+, a+, rb+, wb+, ab+ (lettura e scrittura su file con modalità di testo o modalità binaria) int fclose(file *fp) chiude il file cui fa riferimento il puntatore fp; int remove(nomefile) cancella il file identificato da nomefile int rename(vecchionome, nuovonome) Modifica il nome di un file da vecchionome a nuovonome.
9 fopen
10 Operazioni di gestione degli errori int ferror(file *fp) Controlla se è stato commesso un errore nella precedente operazione di lettura o scrittura Restituisce 0 se nessun errore è stato commesso, un valore diverso da 0 in caso contrario int feof(file *fp) Controlla se è stata raggiunta la fine del file nella precedente operazione di lettura o scrittura Restituisce 0 se la condizione di fine file non è stata raggiunta, un valore diverso da 0 in caso contrario void clearerr(file *fp) Riporta al valore di default i campi eof ed error della struttura che descrive lo stato del file cui fa riferimento il puntatore fp
11 Operazioni di lettura e scrittura Le operazioni di lettura e scrittura su file possono essere effettuate in quattro modi diversi: precisando il formato dei dati in ingresso e in uscita accedendo ai dati carattere per carattere linea per linea blocco per blocco Generalmente si adotta l accesso linea per linea nel caso di flussi di testo e l accesso carattere per carattere o blocco per blocco in presenza di flussi binari
12 Lettura e scrittura formattata Le funzioni fprintf e fscanf consentono operazioni formattate analoghe a quelle di scanf e printf Restituiscono il numero degli elementi effettivamente letti o stampati o restituiscono un numero negativo in caso di errore int fprintf(file *fp, stringa di controllo, elementi) int fscanf(file *fp, stringa di controllo, indirizzo elementi)
13 Lettura e scrittura di caratteri getchar legge da Standard Input il prossimo carattere restituendolo come intero putchar scrive come prossimo carattere sul file di Standard Output il carattere che riceve come parametro restituendo il carattere scritto getc e fgetc leggono il prossimo carattere del file specificato tra i parametri di ingresso restituendolo come intero putc e fputc scrivono come prossimo carattere del file il carattere specificato tra i parametri di ingresso restituendolo come intero
14 Esempio Il seguente programma legge e mostra sul video il contenuto del file di tipo testo filechar #include <stdio.h> /* Contiene la definizione di EOF, del tipo FILE e le testate delle funzioni che operano su file */ #include <stddef.h> /* Contiene la definizione di NULL */ void main() { FILE *fp; char c; if ((fp = fopen("filechar", "r"))!= NULL) { while ((c = fgetc(fp))!= EOF) putchar(c); fclose(fp); else printf("il file non può essere aperto\n");
15 Lettura e scrittura di stringhe (accesso per linee) gets e puts leggono da Standard Input e scrivono su Standard Output fgets e fputs leggono o scrivono linee (stringhe di caratteri terminate da un newline) dal o sul file specificato come parametro di ingresso
16 #define OK 1 #define ERROR 0 #define MAXLINE 100 int copiaselettiva(char refstr[]) { char line[maxline]; FILE *fin, *fout; if ((fin = fopen("filein", "r")) == NULL) return ERROR; if ((fout = fopen("fileout", "w")) == NULL) { fclose(fin); return ERROR; while (fgets(line,maxline,fin)!= NULL) /* fgets legge da filein al più MAXLINE 1 caratteri e assegna al vettore line i caratteri letti, incluso l'eventuale carattere di newline, e termina la stringa con il carattere \0 */ if (strstr (line,refstr)!= NULL) /* La funzione strstr restituisce la posizione della prima occorrenza della stringa puntata da refstr nella stringa puntata da line; se la seconda stringa non è contenuta nella prima viene restituito il valore NULL */ fputs(line,fout); fclose(fin); fclose(fout); return OK;
17 Lettura e scrittura di strutture (accesso per blocchi) int fread(void *ptr, dimelemento, numelementi, FILE *fp); legge un blocco di dati binari o testuali dal file cui fa riferimento fp e li memorizza nel vettore identificato da ptr int fwrite(void *ptr, dimelemento, numelementi, FILE *fp); scrive un blocco
18 Esempio Un file Persone è costituito da record di tipo Persona Ogni Persona contiene i campi nome, cognome, indirizzo Si vuole modificare il file aggiungendo a ogni persona il campo CodiceFiscale Un file CodiciFiscali contiene i codici fiscali delle persone contenute in persone, nello stesso ordine Si vuole costruire un file NuovePersone I tre file sono binari Questa operazione è svolta, in maniera parametrica rispetto ai file utilizzati, dalla seguente funzione, cui sono premesse le necessarie dichiarazioni di tipo
19 typedef struct { char nome[20]; char cognome[20]; char indirizzo[50]; Persona; typedef char CodFisc[16]; typedef struct { char nome[20]; char cognome[20]; char indirizzo[50]; CodFisc CodiceFiscale; NuovaPersona; /* I file Persone, CodiciFiscali e Nuove Persone si suppongono aperti dal main. pp, cf e np fanno riferimento ai tre file in questione */
20 void AggiornaPersone (FILE *pp, FILE *cf, FILE *np) { Persona pcorrente; CodFisc cfcorrente; NuovaPersona npcorrente; rewind(pp); /* Rende possibile le seguenti operazioni di lettura e scrittura sul file identificato da pp, iniziando dal primo byte del file */ rewind(cf); rewind(np); while (fread(&pcorrente,sizeof(persona),1,pp)!= 0) { /* Finché non si è raggiunta la fine del file */ fread(cdcorrente,sizeof(codfisc),1,cf); strcpy(npcorrente.nome, pcorrente.nome); strcpy(npcorrente.cognome,pcorrente.cognome); strcpy(npcorrente.indirizzo, pcorrente.indirizzo); strcpy(npcorrente.codicefiscale, cfcorrente); fwrite(&npcorrente,sizeof(nuovapersona),1,np);
21 Accesso diretto int fseek(file *fp, long offset, int refpoint) sposta l indicatore di posizione per effettuare accessi diretti al file a cui fa riferimento fp Lo scostamento offset (può assumere valori positivi o negativi ed è espresso in byte) si riferisce alla posizione fissa indicata da refpoint Refpoint può assumere tre diversi valori SEEK_SET rispetto all inizio del file SEEK_CUR rispetto alla posizione corrente SEEK_END rispetto alla fine del file La funzione fseek restituisce zero se la richiesta è corretta, un valore diverso da zero altrimenti
22 (continua) long ftell(file *fp) restituisce il valore corrente dell indicatore di posizione del file specificato Per file binari la posizione è il numero di byte rispetto all inizio del file, mentre per file testuali è un valore dipendente dall implementazione rewind(f) equivale a fseek (f, 0, SEEK_SET); A differenza di fseek, rewind non restituisce alcun valore
23 Esempio Inversione del contenuto di un file numint di interi main() { FILE *f; long int inizio, fine; int tempi, tempf; unsigned int dim; if ((f = fopen("numint", "rb+")) == NULL) { puts("non è stato possibile aprire il file numint"); /* più efficiente della printf per la stampa di un messaggio dato che non richiede la scansione e l interpretazione della stringa di controllo */ exit(1); /* La funzione exit provoca una conclusione non anomala del programma e la restituzione del controllo al sistema operativo */ inizio = 0;
24 dim = sizeof(int); fseek(f, dim, SEEK_END); /* SEEK_END è una costante definita nel file stdio.h. Ha valore 2 */ fine = ftell(f); while (inizio < fine) { fseek(f, inizio, SEEK_SET); /* SEEK_SET è una costante definita nel file stdio.h. Ha valore 0 */ fread(&tempi, dim, 1, f); fseek (f, fine, SEEK_SET); fread (&tempf, dim, 1, f); /* È necessario riposizionarsi dato che la precedente istruzione fread ha spostato la posizione corrente sul successivo elemento */ fseek (f, fine, SEEK_SET); fwrite (&tempi, dim, 1, f); fseek (f, inizio, SEEK_SET); fwrite (&tempf, dim, 1, f); inizio = inizio + dim; fine = fine dim;
25 Esercizi
26 28/06/2012 Scrivere in C una funzione che legge un file di numeri interi e restituisce un nuovo file (numeripari). Questo deve contenere i soli numeri pari letti, ma memorizzati in ordine inverso. Ad esempio, se il file originario contenesse: 1, 2, 3, 4, 5, 6, 7, 8, il nuovo file dovrebbe contenere: 8, 6, 4, 2. Il parametro della funzione e il valore restituito non devono essere nomi di file, ma i file stessi
27 void inverti(file *f) { int inizio, fine, dim, tempi, tempf; inizio = 0; dim = sizeof(int); fseek(f, -dim, SEEK_END); fine = ftell(f); while (inizio < fine) { fseek(f, inizio, SEEK_SET); fread(&tempi, dim, 1, f); fseek (f, fine, SEEK_SET); fread (&tempf, dim, 1, f); fseek (f, fine, SEEK_SET); fwrite (&tempi, dim, 1, f); fseek (f, inizio, SEEK_SET); fwrite (&tempf, dim, 1, f); inizio = inizio + dim; fine = fine - dim;
28 FILE *numpari(file *f) { FILE *fp; int i; if ((fp = fopen("numeripari", "wb+")) == NULL) return NULL; rewind(f); while (fread(&i, sizeof(int), 1, f)!= 0) { if (i%2 == 0) fwrite(&i, sizeof(int), 1, fp); inverti(fp); return fp;
29 int main() { FILE *f1, *f2; creafile(); if ((f1 = fopen("numeri", "rb")) == NULL) return 0; f2 = numpari(f1); print(f2); fclose(f1); fclose(f2); return 1;
30 void print(file *f) { int i; rewind(f); while (fread(&i, sizeof(int), 1, f)!= 0) printf("%d ", i); printf("\n"); void creafile() { FILE *f; int i; if ((f = fopen("numeri", "wb")) == NULL) return; scanf("%d", &i); while (i!=0) { fwrite(&i, sizeof(int), 1, f); scanf("%d", &i); fclose(f);
31 16/02/2012 Scrivere una funzione C che prende in ingresso un file (di caratteri) e restituisce il carattere nel mezzo del file. Ad esempio, se il file contenesse 75 caratteri, la funzione dovrebbe restituire il carattere in posizione 38 Se il numero di caratteri fosse pari, la funzione dovrebbe restituire il primo della coppia centrale. In altre parole, se il file contenesse 10 caratteri, la funzione dovrebbe restituire il carattere in posizione 5. Il file (puntatore a file) è l unico parametro che deve avere la funzione
32 char nelmezzo(file *f) { char c; long dim; fseek(f, 0, SEEK_END); dim = ftell(f); fseek(f, dim/2, SEEK_SET); fread(&c, sizeof(char), 1, f); return c; int main() { FILE *f; if ((f = fopen("prova.txt", "r")) == NULL) return 0; printf("il carattere centrale e': %c\n", nelmezzo(f)); return 1;
Gestione dei file in C
Gestione dei file in C Fondamenti di Informatica Che cos è un file e a cosa serve? Memoria di massa vs memoria centrale q La memoria di massa (disco fisso) è un dispositivo di memorizzazione generalmente
DettagliGestione dei File. Indice. Il file system in C. Principali operazioni sui file (dalla Standard Library) Esempi. Corso di Informatica A.
Gestione dei File Corso di Informatica A Vito Perrone 1 Il file system in C Indice Principali operazioni sui file (dalla Standard Library) Esempi 2 Il file system in C Flusso di comunicazione: binario
DettagliI file. un file è una sorgente/destinazione di dati per diversi attori
I file Il file è un astrazione molto ampia nella descrizione di un sistema informatico: Il concetto di file è uno snodo fondamentale di flussi di informazione anche tra applicazioni diverse un file è una
DettagliI files in C. A cura del prof. Ghezzi
I files in C A cura del prof. Ghezzi 1 Perchè i files? Realizzano la persistenza dei dati dati che sopravvivono all esecuzione del programma Sono delle strutture di dati sequenziali 2 Files e S.O. I files
DettagliLaboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007
Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007 Dott.Davide Di Ruscio Dipartimento di Informatica Università degli Studi di L Aquila Lezione del 13/03/07 Nota Questi lucidi sono tratti
DettagliA. Ferrari. File. in C
File in C stream - flussi in C la gestine dei file avviene attravers un fluss di cmunicazine per utilizzare un file è necessari dichiarare una variabile di tip puntatre al file (ad un ggett di tip FILE)
DettagliGESTIONE DEI FILE IN C. Docente: Giorgio Giacinto AA 2008/2009
Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria per l Ambiente ed il Territorio Corso di Laurea Specialistica in Ingegneria Civile - Strutture FONDAMENTI DI INFORMATICA 2
DettagliLinguaggio C: i file
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica A - GES Prof. Plebani A.A. 2006/2007 Linguaggio C: i file La presente dispensa e da utilizzarsi ai soli fini didattici previa
DettagliDOTT. ING. LEONARDO RIGUTINI DIPARTIMENTO INGEGNERIA DELL INFORMAZIONE UNIVERSITÀ DI SIENA VIA ROMA 56 53100 SIENA UFF. 0577234850-7102 RIGUTINI@DII
Gestione dei files DOTT. ING. LEONARDO RIGUTINI DIPARTIMENTO INGEGNERIA DELL INFORMAZIONE UNIVERSITÀ DI SIENA VIA ROMA 56 53100 SIENA UFF. 0577234850-7102 RIGUTINI@DII.UNISI.IT HTTP://WWW.DII.UNISI.IT/~RIGUTINI/
DettagliIl linguaggio C. Breve panoramica su stdio.h
Il linguaggio C Breve panoramica su stdio.h 1 Input/Output: stdio.h Contiene definizioni di costanti legate all I/O es. EOF (end of file) #define EOF (-1) valore restituito alla fine di un file Contiene
DettagliGestione dei File. dischi nastri cd
Gestione dei File Per mantenere disponibili i dati tra le diverse esecuzioni di un programma, questi si devono archiviare in file su memoria di massa (dati persistenti): dischi nastri cd Un file è un astrazione
DettagliGestione dei file. Linguaggio ANSI C Input/Output - 13
Gestione dei file Necessità di persistenza dei file archiviare i file su memoria di massa. Un file è una astrazione fornita dal sistema operativo, il cui scopo è consentire la memorizzazione di informazioni
DettagliGESTIONE DEI FILE IN C
GESTIONE DEI FILE IN C Il concetto di file.. è una parte logicamente contigua del contenuto di un dispositivo! Deve essere capace di memorizzare grandi quantità di dati! I dati memorizzati devono sopravvivere
DettagliGestione dei files. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Via Leopardi 132
Gestione dei files Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Via Leopardi 132 Struttura del disco fisso Un disco fisso è composto da una serie di piatti sovrapposti Ogni piatto è
DettagliIntroduzione al C. Stream e disk file
Introduzione al C Stream e disk file Stream Un canale è una sequenza di byte di dati Sorgente o destinazione di dati che possono essere associati ad un disco o ad altre periferiche Due tipi di stream:
DettagliDIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. File. Marco D. Santambrogio Ver. aggiornata al 15 Maggio 2013
File Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 15 Maggio 2013 Obiettivi Alcuni problemi aperti Il main() Allocazione dinamica della memoria Il salvataggio dei dati File File
DettagliLinguaggio C Gestione File
Gestione File: Il file è l'unità logica di memorizzazione dei dati su memoria di massa, che consente una memorizzazione persistente dei dati non limitata dalle dimensioni della memoria centrale. Nel linguaggio
DettagliFondamenti di Informatica T. Linguaggio C: File
Linguaggio C: File I File Il file e` l'unita` logica di memorizzazione dei dati su memoria di massa, che consente una memorizzazione persistente dei dati, non limitata dalle dimensioni della memoria centrale.
DettagliIntroduzione. L elaborazione dei files in C. Elaborazione dei files (1) Elaborazione dei files (2) D.D. cap. 11+ pp K.P. pp.
Introduzione L elaborazione dei files in C D.D. cap. 11+ pp. 569-572 K.P. pp. 581-583 La memorizzazione dei dati nelle variabili e nei vettori è temporanea: tutti quei dati andranno persi quando il programma
DettagliOperazioni su file di caratteri
Operazioni su file di caratteri Apertura fopen Chiusura fclose Scrittura fprintf Lettura fscanf Controllo fine file feof Prof. E. Occhiuto INFORMATICA 242AA a.a. 2010/11 pag. 1 Apertura di un file: Si
DettagliCapitolo 5 -- Stevens
Libreria standard di I/O Capitolo 5 -- Stevens Libreria standard di I/O rientra nello standard ANSI C perché è stata implementata su molti sistemi operativi oltre che su UNIX le sue funzioni individuano
DettagliI File. Il file e` l'unita` logica di memorizzazione dei dati su memoria di massa.
I File Il file e` l'unita` logica di memorizzazione dei dati su memoria di massa. Consente una memorizzazione persistente dei dati, non limitata dalle dimensioni della memoria centrale. Generalmente un
DettagliFILE: tipo operazione Istruì. prototipo esempi lettura di un carattere fgetc Int fgetc(file *flusso) Vedi sotto
FILE: tipo operazione Istruì. prototipo esempi lettura di un carattere fgetc Int fgetc(file *flusso) Vedi sotto alla volta Scrittura di un fputc Int fputc(int ch, FILE *flusso); carattere alla volta Lettura
DettagliGestione dei File in C
Gestione dei File in C Maurizio Palesi DIIT Università di Catania Viale Andrea Doria 6, 95125 Catania mpalesi@diit.unict.it http://www.diit.unict.it/users/mpalesi Sommario In questo documento saranno introdotte
DettagliInput/output da file I/O ANSI e I/O UNIX FLUSSI E FILE FLUSSI FLUSSI di TESTO FLUSSI BINARI FILE
Input/output da file Il linguaggio C non contiene istruzioni di I/O, in quanto tali operazioni vengono eseguite tramite funzioni di libreria standard. Questo approccio rende estremamente flessibile e potente
DettagliInput / Output. Come già detto, input e output sono realizzati in C da funzioni di stdio.h all'interno della libreria standard
Stdio.h Input / Output Come già detto, input e output sono realizzati in C da funzioni di stdio.h all'interno della libreria standard Sia i file che i dispositivi (tastiera, schermo...) sono visti come
DettagliIntroduzione al C. Unità 9 File. D. Bloisi, S. Peluso, A. Pennisi, S. Salza
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Introduzione al C Unità 9 File D. Bloisi, S. Peluso, A. Pennisi, S. Salza Sommario Input/Output Stream
DettagliFile binari e file di testo
I file File binari e file di testo distinzione tra file binari file di testo si possono usare funzioni diverse per la gestione di tipi di file diversi Programmazione Gestione dei file 2 File binari e file
DettagliEsercizi. I File ed il C
Politecnico di Milano Esercizi File di testo,, file binari I File ed il C Insieme omogeneo di dati, memorizzato su disco e caratterizzato da un nome La lunghezza di un file non è fissata a priori Astrazione
DettagliIndice. La gestione dei file in C e gli stream. Apertura e chiusura di un file. Operazioni sui file. Accesso sequenziale e non sequenziale
File in C Indice La gestione dei file in C e gli stream Apertura e chiusura di un file Operazioni sui file Accesso sequenziale e non sequenziale Gestione dei file in C In C all interno della standard library
DettagliScrittura formattata - printf
Esercizi su Input/Output con formato FormattedIO 1 Scrittura formattata - printf Funzione printf int printf ( , ) La funzione restituisce un valore intero uguale ai caratteri
DettagliInput / Output. Come già detto, input e output sono realizzati in C da funzioni di stdio.h all'interno della libreria standard
Stdio.h Input / Output Come già detto, input e output sono realizzati in C da funzioni di stdio.h all'interno della libreria standard Sia i file che i dispositivi (tastiera, schermo...) sono visti come
DettagliI File. Consente una memorizzazione persistente dei dati, non limitata dalle dimensioni della memoria centarle.
I File Il file e l unita logica di memorizzazione dei dati su memoria di massa. Consente una memorizzazione persistente dei dati, non limitata dalle dimensioni della memoria centarle. Generalmente un file
DettagliGestione dei file. Stefano Ferrari. Università degli Studi di Milano Programmazione. anno accademico
Gestione dei file Stefano Ferrari Università degli Studi di Milano stefano.ferrari@unimi.it Programmazione anno accademico 2016 2017 Gli stream Si dice stream qualsiasi sorgente di dati in ingresso e qualsiasi
DettagliI file Laboratorio di Linguaggi di Programmazione a.a. 2001/2002
I file Laboratorio di Linguaggi di Programmazione a.a. 2001/2002 dott.ssa Francesca A. Lisi lisi@di.uniba.it Sommario Generalità sui file in C I file ad accesso sequenziale I file di testo Riferimenti
DettagliLaboratorio di Sistemi Operativi primavera 2009
primavera 2009 Libreria standard di I/O Libreria standard di I/O rientra nello standard ANSI C perché è stata implementata su molti sistemi operativi oltre che su UNIX le sue funzioni individuano il file
DettagliLaboratorio di Informatica Ingegneria Clinica Lezione 30/11/2011
Laboratorio di Informatica Ingegneria Clinica Lezione 30/11/2011 Raffaele Nicolussi FUB - Fondazione Ugo Bordoni Via del Policlinico, 147 00161 Roma I/O in C Il sistema di I/O del C è una interfaccia uniforme
DettagliUn file è un astrazione di memorizzazione di dimensione potenzialmente illimitata (ma non infinita), ad accesso sequenziale.
IL CONCETTO DI FILE Un file è una astrazione fornita dal sistema operativo, il cui scopo è consentire la memorizzazione di informazioni su memoria di massa. Concettualmente, un file è una sequenza di registrazioni
DettagliInput/Output. Lettura e scrittura Caratteri e Stringhe: Terminale e file. Input/output. caratteri stringhe formattato ascii binari
Input/Output Lettura e scrittura Caratteri e Stringhe: Terminale e file Input/output console file caratteri stringhe formattato ascii binari Linguaggio ANSI C Input/Output - 1 La libreria standard del
Dettaglifile fisico file logico
I files Un file è una struttura di dati residente su una memoria di massa (file fisico) Un programma vede un file come una sequenza di bytes (file logico) Generalizzando, un file può comprendere qualsiasi
DettagliSOMMARIO SU LETTURA E SCRITTURA (I/O) DEGLI STANDARD FILES
SOMMARIO SU LETTURA E SCRITTURA (I/O) DEGLI STANDARD FILES Con conversione di formato: int scanf (const char *format,... ) /* ritorna il numero di argomenti assegnati con successo altrimenti EOF se fine
DettagliSuggerimenti, note utili ed errori comuni. Fondamenti di informatica T
Suggerimenti, note utili ed errori comuni Fondamenti di informatica T printf, scanf e stringhe di formato La lettura e scrittura di variabili in formato testo sono realizzate tramite printf e scanf sfruttando
DettagliI File. File. File di testo. Esempi di file di testo. Gestione di file in C. Gestione di file in C
mylib.obj mylib.c #include mylib.h int leggi(int a[], int dim) { int i=0; while( scanf("%d", a+i) ) { i++; if( i>=dim ) break; return i; void scambia(int *a, int *b) { int t; t = *a; *a = *b; *b = t; mylib.h
DettagliMatrici, stringhe e I/O da file
Memory Leakage (I) Se si perde il valore di un puntatore di una zona di memoria allocata, quella memoria non e piu utilizzabile dal processo e non e piu liberabile : rimane quindi proprieta del processo
DettagliGestione dei File C. Generalità
Gestione dei File C 1 Generalità Il linguaggio C non contiene alcuna istruzione di Input/Output. Tali operazioni vengono svolte mediante chiamate a funzioni definite nella libreria standard contenute nel
DettagliIl linguaggio C I file. mylib.h contribuenti.txt. #include <stdio.h> #define N 25 Paolucci,Enrico, 24000,23.0. fornitori.dat
Il linguaggio C I file mylib.c #include mylib.h int leggi(int a[], int dim) { int i=0; while( scanf("%d", a+i) ) { i++; if( i>=dim ) break; return i; void scambia(int *a, int *b) { int t; t = *a; *a =
DettagliLe strutture. Una struttura C è una collezione di variabili di uno o più tipi, raggruppate sotto un nome comune.
Le strutture Una struttura C è una collezione di variabili di uno o più tipi, raggruppate sotto un nome comune. Dichiarazione di una struttura: struct point { int x; int y; }; La dichiarazione di una struttura
DettagliI file possono essere manipolati (aperti, letti, scritti ) all interno di programmi C. dischi nastri cd
Per poter mantenere disponibili i dati tra le diverse esecuzioni di un programma (persistenza dei dati) è necessario poterli archiviare su memoria di massa. dischi nastri cd GESTIONE DEI FILE I file possono
DettagliStruttura dati FILE. Motivazioni: memorie a confronto
Struttura dati FILE Motivazioni: memorie a confronto La memoria centrale (RAM) è tecnologia elettronica basata su Le memorie secondarie sono basate su tecnologie magnetiche (HD) o ottiche (CD, DVD) Conseguenze
DettagliFondamenti di Informatica
Cosa sono i file? Un file è un archivio di dati che puo essere registrato su un supporto di massa (testo, lettera, programma, archivio di dati, ecc.) Fondamenti di Informatica 12. Linguaggio C - Gestione
DettagliFILE BINARI. I file di testo non sono indispensabili: sono semplicemente comodi!
FILE BINARI Un file binario è una pura sequenza di byte, senza alcuna strutturazione particolare. È un'astrazione di memorizzazione assolutamente generale, usabile per memorizzare su file informazioni
Dettaglicaratteri, immagini, suoni, ecc.
Il linguaggio C Input e output I flussi di I/O L uso di buffer Apertura e chiusura di file Lettura e scrittura di dati La selezione di un metodo di I/O I/O non bufferizzato L accesso diretto a file Input
DettagliGestione dei file. File di testo e binari
Gestione dei file Un file e definito come un oggetto, presente nel file system, costituito da una sequenza continua di bytes Un file, per poter essere utilizzato, deve essere aperto Successivamente e possibile
DettagliCorso di Laurea in Ingegneria Meccanica A-K. Fondamenti di Informatica A. A Gestione dei File. A.Pinto
Corso di Laurea in Ingegneria Meccanica A-K Fondamenti di Informatica A. A. 2011-2012 1 Memorizzazione dei dati su dispositivi di memoria esterna Dispositivi di memorizzazione secondaria sono: dischi,
DettagliCapitolo 11 Elaborazione di file
1 Capitolo 11 Elaborazione di file 11.1 Introduzione 2 I file Possono essere creati, modificati, ed elaborati da programmi scritti in C Sono utilizzati per la memorizzazione permanente dei dati La memorizzazione
DettagliLe strutture. Una struttura C è una collezione di variabili di uno o più tipi, raggruppate sotto un nome comune.
Le strutture Una struttura C è una collezione di variabili di uno o più tipi, raggruppate sotto un nome comune. Dichiarazione di una struttura: struct point { int x; int y; }; La dichiarazione di una struttura
DettagliStruttura dati FILE. Concetto di FILE
Struttura dati FILE Concetto di FILE Per poter mantenere disponibili dei dati tra diverse esecuzioni di un programma (PERSISTENZA dei dati), è necessario poterli archiviare su memoria di massa. Un file
DettagliLP1 Lezione 13: i File in C. Maurizio Tucci
LP1 Lezione 13: i File in C Maurizio Tucci mtucci@unisa.it 1 Il File: Dichiarazione Memorizzare dati in maniera non volatile In C (libreria ) è definito un tipo FILE che astrae il concetto di sequenza
DettagliSulla libreria standard, III. Manipolare file con stdio.h
Sulla libreria standard, III Manipolare file con stdio.h 1 Libreria per input/output Con libreria si intende una collezione di sottoprogrammi che vengono utilizzati per lo sviluppo di software non eseguibili,
Dettagliper leggere caratteri: getchar(void); Laboratorio di linguaggi
Lettura e scrittura di caratteri per leggere caratteri: getchar(void); Laboratorio di linguaggi per scrivere caratteri: putchar(int); Le molte volte l input viene bufferizzato fino al tasto ENTER 1 2 Lettura
DettagliSono file di caratteri, organizzati in linee. Ogni linea e` terminata da una marca di fine linea (newline, cara ttere '\n').
I File Il file e` l'unita` logica di memorizzazione dei dati su memoria di massa. Consente una memorizzazione persistente dei dati, non limitata dalle dimensioni della memoria centrale. Generalmente un
DettagliL accesso ai dispositivi esterni (tastiera, monitor, file,...) viene gestito mediante canali di comunicazione.
I file L accesso ai dispositivi esterni (tastiera, monitor, file,...) viene gestito mediante canali di comunicazione. I canali, sono delle strutture dati che contengono informazioni sul dispositivo fisico,
Dettagli! I file di testo non sono indispensabili: sono semplicemente comodi 1. Sintassi:
Un file binario è una pura sequenza di byte, senza alcuna strutturazione particolare! È un'astrazione di memorizzazione assolu -tamente generale, usabile per memorizza -re su file informazioni di qualsiasi
DettagliFILE BINARI FILE BINARI
FILE BINARI Un file binario è una pura sequenza di byte, senza alcuna strutturazione particolare È un'astrazione di memorizzazione assolutamente generale, usabile per memorizzare su file informazioni di
DettagliFILE BINARI FILE BINARI FILE BINARI. OUTPUT BINARIO: fwrite()
FILE BINARI Un file binario è una pura sequenza di byte, senza alcuna strutturazione particolare È un'astrazione di memorizzazione assolutamente generale, usabile per memorizzare su file informazioni di
DettagliLe librerie standard. ! La libreria standard del C è in realtà un insieme di librerie
! La libreria standard del C è in realtà un insieme di librerie! Per usare una libreria, non occorre inse -rirla esplicitamente nel progetto: ogni ambiente di sviluppo sa già dove cercarle! Ogni file sorgente
DettagliFile e puntatori a file
File e puntatori a file Vitoantonio Bevilacqua vitoantonio.bevilacqua@poliba.it La libreria stdio.h mette a disposizione delle funzioni che hanno la peculiarità di trattare con questa nuova tipologia di
DettagliLIBRERIE STANDARD in C. LIBRERIE STANDARD in C
LIBRERIE STANDARD in C La libreria standard del C è in realtà un insieme di librerie Per usare una libreria, non occorre inserirla esplicitamente nel progetto: ogni ambiente di sviluppo sa già dove cercarle
DettagliLinguaggio C La libreria standard
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Linguaggio C La libreria standard 2001 Pier Luca Montessoro - Davide Pierattoni
DettagliSommario FONDAMENTI DI INFORMATICA 1. Il tipo FILE. Passaggio da standard I/O. LINGUAGGIO C Gestione dei file
Università degli Studi di Cagliari Corso di Laurea in Ingegneria Biomedica (Industriale), Chimica, Meccanica, Elettrica FONDAMENTI DI INFORMATICA 1 http://www.diee.unica.it/~marcialis/fi1 A.A. 2010/2011
DettagliProgrammazione C Massimo Callisto De Donato
Università degli studi di Camerino Scuola di scienze e tecnologia - Sezione Informatica Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto LEZIONE
DettagliStrutture dati e realizzazione in C. Componenti software:
Strutture dati e realizzazione in C Strutture dati: Termine usato per indicare tipi con elementi del dominio compositi, ad esempio: vettori e matrici; tavole; liste; insiemi; pile e code; alberi e grafi.
DettagliLibrerie C. Corso di Linguaggi e Traduttori 1 AA Corso di Linguaggi e Traduttori 1 AA stdio.h
Corso di Linguaggi e Traduttori 1 AA 2004-05 1 Corso di Linguaggi e Traduttori 1 AA 2004-05 stdio.h 2 Funzioni comuni di I/O? Le piu' comuni funzioni che permettono I/O sono getchar() e putchar():? int
DettagliFile binari, Operazioni sui File binari, Allocazione dinamica della memoria
File binari, Operazioni sui File binari, Allocazione dinamica della memoria Vitoantonio Bevilacqua bevilacqua@poliba.it Parole chiave: File binari, Funzioni principali file binari, Funzione malloc, Allocazione
DettagliPremessa. Input /output e gestione dei file. I file e gli stream. Il puntatore al file. 21. I FILE NEL LINGUAGGIO C Versione 1.
Input /output e gestione dei file Premessa Iniziamo la lezione dicendo subito che per INPUT/OUTPUT si intende l insieme delle operazioni di ingresso ed uscita, ossia lo scambio di informazioni tra il programma
DettagliSommario. Manipolazione sequenziale di file in C Funzioni di base per I/O di file
File Input/Output 1 Sommario Manipolazione sequenziale di file in C Funzioni di base per I/O di file 2 Manipolazione di file I file devono essere aperti prima dell uso Associa un puntatore a file a ogni
DettagliLab 10 Gestione file di testo
Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni Lab 10 Gestione file di testo Lab15 1 Esercizio 1 n Realizzare un programma che, aperto un file di testo di nome
DettagliLibrerie C. Corso di Linguaggi e Traduttori 1 AA
Corso di Linguaggi e Traduttori 1 AA 2004-05 1 Corso di Linguaggi e Traduttori 1 AA 2004-05 stdio.h 2 Funzioni comunidi I/O? Le piu' comuni funzioni che permettono I/O sono getchar() e putchar():? int
DettagliIntroduzione a. Funzioni di Ingresso e Uscita. Compilazione
Introduzione a Funzioni di Ingresso e Uscita Compilazione 2 Come si termina...... un programma in esecuzione (processo)? Ctrl + C In UNIX ci si basa sul concetto di terminale Anche da GUI, quello che si
DettagliLA LIBRERIA STANDARD DEL C
LA LIBRERIA STANDARD DEL C La libreria standard del C La libreria standard del C è in realtà un insieme di librerie Per usare una libreria, non occorre inserirla esplicitamente. Ogni file sorgente che
DettagliSono file di caratteri, organizzati in linee. Ogni linea è terminata da un marcatore di fine linea (newline, carattere \n ).
I file Il file è l unità logica di memorizzazione dei dati su memoria di massa. Consente una memorizzazione persistente dei dati, non limitata dalle dimensioni della memoria centrale. Generalmente un file
DettagliI File. Il file e l unita logica di memorizzazione dei dati su memoria di massa.
I File Il file e l unita logica di memorizzazione dei dati su memoria di massa. Consente una memorizzazione persistente dei dati, non limitata dalle dimensioni della memoria centrale. Generalmente un file
DettagliSe vogliamo cambiarlo: i dati vengono sovrascritti. 300 White Jones (vecchio valore) 300 Worthington 0.00
File position pointer File position pointer Indica la posizione da cui leggere/scrivere i prossimi byte Non un puntatore, ma un valore intero (specifica la posizione dall inizio file in termini di numero
Dettagliint ninv; /* numero di inventario */
1) Scrivere il programma C che legga da un file di testo ("dati.dat") i record con dati relativi ad un archivio di dischi (utilizzando la struttura data) e scriva il file dati1.dat con i nomi degli artisti
DettagliEsercizio 1. Esercizio 1 - Soluzione
Esercizio 1 Realizzare un programma che, aperto un file di testo di nome Prova.txt in modalità scrittura, provveda a leggere da input delle parole separate da spazi (stringhe di al più 63 caratteri) e
Dettagli---------------------------------------------------------------- Puntatori a funzione. In C è possibile utilizzare dei puntatori a funzioni, ovvero
---------------------------------------------------------------- Puntatori a funzione. In C è possibile utilizzare dei puntatori a funzioni, ovvero delle variabili a cui possono essere assegnati gli indirizzi
DettagliIL CONCETTO DI FILE. È illecito operare oltre la fine del file.
IL CONCETTO DI FILE Un file è una astrazione fornita dal sistema operativo, il cui scopo è consentire la memorizzazione di informazioni su memoria di massa. Concettualmente, un file è una sequenza di registrazioni
DettagliLe funzioni. Funzioni. Funzioni. Funzioni. Funzioni. Funzioni
Funzioni Le funzioni Con il termine funzione si intende, in generale, un operatore che, applicato a un insieme di operandi, consente di calcolare un risultato, come avviene anche per una funzione matematica
DettagliFILE BINARI. I file di testo non sono indispensabili: sono semplicemente comodi 1
FILE BINARI Un file binario è una pura sequenza di byte, senza alcuna strutturazione particolare È un'astrazione di memorizzazione assolutamente generale, usabile per memorizzare su file informazioni di
DettagliEsercitazione 6. Array
Esercitazione 6 Array Arrays Array (o tabella o vettore): è una variabile strutturata in cui è possibile memorizzare un numero fissato di valori tutti dello stesso tipo. Esempio int a[6]; /* dichiarazione
DettagliFondamenti di Informatica. Tecniche di input/output per l'accesso ai file
Corso di per il corso di Laurea di Ingegneria Meccanica Tecniche di input/output per l'accesso ai file Università degli Studi di Udine - A.A. 2010-2011 Docente Ing. Sandro Di Giusto Ph.D. 1 L'importanza
DettagliIl File-System. I file in ambiente Linux Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino
Il File-System I file in ambiente Linux Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino 2 File System Il file-system è uno degli aspetti più visibili di un sistema operativo
DettagliInformazioni Utili. Fondamenti di Informatica L-B (L-Z) Esercitazioni. A.A. 2005/06 Tutor: Loris Cancellieri
Fondamenti di Informatica L-B (L-Z) Esercitazioni A.A. 2005/06 Tutor: Loris Cancellieri loris.cancellieri@studio.unibo.it Informazioni Utili Orario delle Esercitazioni Lunedì 14-16 Gruppo L Q Martedì 16-18
DettagliDIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA. INFORMATICA B Ingegneria Elettrica. I file in Matlab
INFORMATICA B Ingegneria Elettrica I file in Matlab I file I file sono contenitori di informazione: sequenze di byte associate ad un nome Sono memorizzati su memoria di massa (non- volatile) Possono continuare
DettagliFondamenti di Informatica L-B (L-Z) Esercitazioni. A.A. 2007/08 Tutor: Barbara Pettazzoni
Fondamenti di Informatica L-B (L-Z) Esercitazioni A.A. 2007/08 Tutor: Barbara Pettazzoni barbara.pettazzoni@studio.unibo.it Informazioni Utili Orario delle Esercitazioni Martedì 14-16 Gruppo L Q Martedì
DettagliIntroduzione al Linguaggio C
Introduzione al Linguaggio C File I/O Daniele Pighin April 2009 Daniele Pighin Introduzione al Linguaggio C 1/15 Outline File e dati Accesso ai file File I/O Daniele Pighin Introduzione al Linguaggio C
DettagliI puntatori. Un puntatore è una variabile che contiene l indirizzo di un altra variabile. puntatore
I puntatori Un puntatore è una variabile che contiene l indirizzo di un altra variabile. puntatore...... L operatore & fornisce l indirizzo di un oggetto: p = &c; assegna a p l indirizzo di c, i.e., p
DettagliPrefissi (modificatori). signed, unsigned, short, long. Dichiarazione delle variabili. <tipo> <nome>; Es:
LINGUAGGIO C 1 Creato nel 1972 da Dennis Ritchie (Kernighan & Ritchie, Linguaggio C, 2nd ed.) Caratteristiche: Potenza Flessibilità Successo Portabilità Modularità Da C bisogna partire per imparare C++
Dettagli