Lezione 15. Introduzione

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Lezione 15. Introduzione"

Transcript

1 Lezione 15 L elaborazione dei file Introduzione La memorizzazione dei dati nelle variabili e nei vettori è temporanea. I file sono usati per la memorizzazione permanente di grandi quantità di dati. I calcolatori memorizzano i file su dispositivi di memoria secondaria (per esempio dischi). Obiettivo della lezione: Capire come i file di dati possono essere creati, aggiornati ed elaborati dai programmi C. Corso Informatica A - Allievi Gestionali - prof. C. Silvano 2 Corso Informatica A Allievi Gestionali prof. C. Silvano 1

2 File e stream C vede un file come una sequenza di byte Ogni file termina con un marcatore end-of-file Quando un file viene aperto, vi sarà associato uno stream Gli stream forniscono un flusso di comunicazione tra i file e i programmi L apertura di un file restituisce un puntatore a una struttura FILE (definita in <stdio.h>) Esempi di puntatori a file: stdin - standard input (tastiera) stdout - standard output (schermo) stderr - standard error (schermo) Corso Informatica A - Allievi Gestionali - prof. C. Silvano 3 File e stream FILE structure File Descriptor (descrittore di file) Indice di un vettore del sistema operativo chiamato Open File Table (Tabella dei file aperti) File Control Block (FCB) Blocco di controllo del file usato dal sistema operativo per amministrare il file. Corso Informatica A - Allievi Gestionali - prof. C. Silvano 4 Corso Informatica A Allievi Gestionali prof. C. Silvano 2

3 Funzioni di lettura/scrittura dei dati nei file disponibili nella libreria standard fgetc legge un carattere da un file riceve un puntatore a FILE come argomento (file dal quale sarà letto il carattere) fputc scrive un carattere in un file Riceve un puntatore a FILE e un carattere da scrivere come argomenti. fgets legge una stringa da un file fputs scrive una stringa in un file fscanf/fprintf equivalenti a scanf e printf per la lettura/scrittura nei file. Corso Informatica A - Allievi Gestionali - prof. C. Silvano 5 Lettura e scrittura di caratteri: funzioni fgetc e fputc int fgetc(file *fp) Legge il prossimo carattere dallo stream di input puntato da fp e lo restituisce come valore intero. fgetc(stdin) equivalente a: getchar() legge un carattere da stdin Corso Informatica A - Allievi Gestionali - prof. C. Silvano 6 Corso Informatica A Allievi Gestionali prof. C. Silvano 3

4 Lettura e scrittura di caratteri: funzioni fgetc e fputc int fputc(int c, FILE *fp) Scrive nello stream di output puntato da fp il carattere che riceve come argomento (memorizzato in c). fputc('a', stdout) equivalente a: putchar('a') scrive il carattere 'a' nello stdout Corso Informatica A - Allievi Gestionali - prof. C. Silvano 7 Lettura e scrittura di stringhe: funzioni fgets e fputs char *fgets(char *s, int n, FILE *fp) Legge n-1 caratteri dal file puntato da fp e li memorizza nel vettore s, oppure finché non incontra un carattere newline o un indicatore EOF. Alla fine del vettore sarà accodato un carattere NULL di terminazione. Restituisce s se l operazione è stata correttamente eseguita, NULL in caso contrario (ad esempio se è stata incontrata la fine del file e nessun carattere è stato letto). Corso Informatica A - Allievi Gestionali - prof. C. Silvano 8 Corso Informatica A Allievi Gestionali prof. C. Silvano 4

5 Lettura e scrittura di stringhe: funzioni fgets e fputs int fputs(const char *s, FILE *fp) Scrive sul file puntato da fp il contenuto della stringa puntata da s. (Il carattere \0 terminatore di stringa non viene scritto). Restituisce un EOF se si verifica un errore di scrittura, altrimenti restituirà un valore non negativo. Corso Informatica A - Allievi Gestionali - prof. C. Silvano 9 Funzione fprintf int fprintf(file *fp, const char *format, ) Equivalente a printf eccetto che l output non sarà visualizzato sullo schermo ma memorizzato nel file puntato da fp - nel modo controllato dalla stringa puntata da format, che specificherà in che modo debbano essere convertiti per l output gli argomenti successivi. Esempio: fprintf(fileptr, %d\n, var); Corso Informatica A - Allievi Gestionali - prof. C. Silvano 10 Corso Informatica A Allievi Gestionali prof. C. Silvano 5

6 Funzione fscanf int fscanf(file *fp, const char *format, ) Equivalente a scanf eccetto che l input non sarà letto dalla tastiera ma dal file puntato da fp, nel modo controllato dalla stringa puntata da format - che specificherà le sequenze di input ammissibili e in che modo debbano essere convertite per l assegnamento, utilizzando gli argomenti successivi come puntatori agli oggetti che riceveranno l input convertito. Esempio: fscanf(fileptr, %d, &var); Corso Informatica A - Allievi Gestionali - prof. C. Silvano 11 Creare un file ad accesso sequenziale Il C non impone una struttura ai file Non esistono nozioni di record in un file Il programmatore dovrà fornire le strutture di file per soddisfare le necessità di ogni particolare applicazione. Corso Informatica A - Allievi Gestionali - prof. C. Silvano 12 Corso Informatica A Allievi Gestionali prof. C. Silvano 6

7 Creare un file ad accesso sequenziale FILE *fp; - crea un puntatore a FILE Durante l elaborazione del file dobbiamo riferirci al file usando il puntatore al file. fp = fopen("myfile.dat", openmode); La funzione fopen apre un file, eventualmente creandolo, e restituisce il puntatore al file specificato. Riceve due argomenti: il nome del file da aprire e la modalità di apertura del file Corso Informatica A - Allievi Gestionali - prof. C. Silvano 13 Creare un file ad accesso sequenziale fprintf analoga alla printf, eccetto che il primo argomento è un puntatore a FILE (il file in cui i dati saranno scritti) feof(file *fp) ritorna il valore true se il marcatore end-of-file (per indicare che non ci sono più dati da elaborare) è stato impostato per il file specificato. Corso Informatica A - Allievi Gestionali - prof. C. Silvano 14 Corso Informatica A Allievi Gestionali prof. C. Silvano 7

8 Funzione fopen FILE *fopen(const char *nomefile, const char *modo) Apre il file il cui nome corrisponde alla stringa puntata da nomefile e vi associa uno stream. Restituisce il puntatore al file specificato. L argomento modo punta a una stringa che indica la modalità di apertura del file (per esempio r per aprire il file in lettura). Se il file non viene aperto, ritorna il puntatore NULL Corso Informatica A - Allievi Gestionali - prof. C. Silvano 15 Modalità di apertura dei file r w a Per aprire in lettura un file già esistente Per creare un file per la scrittura. Se il file esiste già ne elimina il contenuto corrente prima di scrivere i dati. Per aprire un file già esistente in accodamento (in pratica apre o crea un file per scrivere alla fine del file) Corso Informatica A - Allievi Gestionali - prof. C. Silvano 16 Corso Informatica A Allievi Gestionali prof. C. Silvano 8

9 Modalità di apertura dei file r+ Per aprire in aggiornamento (lettura e scrittura) un file già esistente w+ Per creare un file per aggiornamento. Se il file esiste già ne elimina il contenuto corrente prima di scrivere i dati. a+ Per aprire un file già esistente in lettura e in accodamento (in pratica apre o crea un file per l accodamento: la scrittura sarà eseguita alla fine del file) Corso Informatica A - Allievi Gestionali - prof. C. Silvano 17 Modalità di apertura dei file Aprire un file con la modalità di apertura scorretta può causare gravi errori. Per esempio, aprire un file già esistente in scrittura (w) quando invece dovrebbe essere aperto in aggiornamento (r+), provocherà l eliminazione del contenuto del file. Consigliabile aprire un file solo in lettura (e non in aggiornamento) quando non dobbiamo modificarne il contenuto, in modo da prevenire una modifica non intenzionale dei contenuti del file. Corso Informatica A - Allievi Gestionali - prof. C. Silvano 18 Corso Informatica A Allievi Gestionali prof. C. Silvano 9

10 Funzione feof int feof(file *fp) Ritorna un valore diverso da zero (true) se il marcatore end-of-file (per indicare che non ci sono più dati da elaborare) è stato impostato per il file specificato; altrimenti restituisce il valore zero. Corso Informatica A - Allievi Gestionali - prof. C. Silvano 19 Funzione fclose int fclose(file *fp) Chiude il file puntato da fp. La chiusura del file comporta l assegnamento del valore NULL a fp e il rilascio del descrittore di tipo FILE. Restituisce il valore zero quando il file è stato chiuso con successo e EOF quando sia stato rilevato un errore qualsiasi. Corso Informatica A - Allievi Gestionali - prof. C. Silvano 20 Corso Informatica A Allievi Gestionali prof. C. Silvano 10

11 Chiusura dei file Nel caso in cui la funzione fclose non sia stata richiamata esplicitamente, il sistema operativo chiude automaticamente tutti i file quando il programma finisce. Consigliabile chiudere ogni file esplicitamente, non appena si è sicuri che il programma non vi farà più riferimento. Corso Informatica A - Allievi Gestionali - prof. C. Silvano 21 1 /* Fig. 11.3: fig11_03.c 2 Create a sequential file */ 3 #include <stdio.h> 4 5 int main() 6 { 7 int account; 8 char name[ 30 ]; 9 double balance; 10 FILE *cfptr; /* cfptr = clients.dat file pointer */ if ( ( cfptr = fopen( "clients.dat", "w" ) ) == NULL ) 13 printf( "File could not be opened\n" ); 14 else { 15 printf( "Enter the account, name, and balance.\n" ); 16 printf( "Enter EOF to end input.\n" ); 17 printf( "? " ); 18 scanf( "%d%s%lf", &account, name, &balance ); while (!feof( stdin ) ) { 21 fprintf( cfptr, "%d %s %.2f\n", 22 account, name, balance ); 23 printf( "? " ); 24 scanf( "%d%s%lf", &account, name, &balance ); 25 } fclose( cfptr ); 28 } return 0; 31 } Corso Informatica A Allievi Gestionali prof. C. Silvano 11

12 Enter the account, name, and balance. Enter EOF to end input.? 100 Jones 24.98? 200 Doe ? 300 White 0.00? 400 Stone ? 500 Rich ? Leggere i dati da un file ad accesso sequenziale Creare un puntatore a FILE, e associarlo al file da leggere: myptr = fopen("myfile.dat", "r"); Usare fscanf per leggere dal file Analoga a scanf, eccetto che il primo argomento è un puntatore a FILE dal quale i dati saranno letti: fscanf(myptr,"%d%s%f",&myint,&mystring,&myfloa); Corso Informatica A - Allievi Gestionali - prof. C. Silvano 24 Corso Informatica A Allievi Gestionali prof. C. Silvano 12

13 Leggere i dati da un file ad accesso sequenziale File Position Pointer (puntatore di posizione del file) indica il numero del prossimo byte da leggere/scrivere Non è realmente un puntatore, ma un valore intero (che specifica la locazione del prossimo byte da leggere/scrivere all interno del file) rewind(myptr) - Riposiziona il File Position Pointer all inizio del file (byte 0) puntato da myptr Corso Informatica A - Allievi Gestionali - prof. C. Silvano 25 1 /* Fig. 11.7: fig11_07.c 2 Reading and printing a sequential file */ 3 #include <stdio.h> 4 5 int main() 6 { 7 int account; 8 char name[ 30 ]; 9 double balance; 10 FILE *cfptr; /* cfptr = clients.dat file pointer */ if ( ( cfptr = fopen( "clients.dat", "r" ) ) == NULL ) 13 printf( "File could not be opened\n" ); 14 else { 15 printf( "%-10s%-13s%s\n", "Account", "Name", "Balance" ); 16 fscanf( cfptr, "%d%s%lf", &account, name, &balance ); while (!feof( cfptr ) ) { 19 printf( "%-10d%-13s%7.2f\n", account, name, balance ); 20 fscanf( cfptr, "%d%s%lf", &account, name, &balance ); 21 } fclose( cfptr ); 24 } return 0; 27 } Account Name Balance 100 Jones Doe White Stone Rich Corso Informatica A Allievi Gestionali prof. C. Silvano 13

14 Modificare i dati in un file ad accesso sequenziale Un file ad accesso sequenziale non può essere modificato senza il rischio di distruggere altri dati. 300 White Jones (dati vecchi presenti nel file) Se dobbiamo cambiare il nome White in Worthington, 300 Worthington White Jones Worthington 0.00ones I dati vecchi sono sovrascritti Corso Informatica A - Allievi Gestionali - prof. C. Silvano 27 Modificare i dati in un file ad accesso sequenziale Nel modello formattato di input/output con fscanf e fprintf i campi possono cambiare la loro dimensione. Rappresentazione differente nei file o sullo schermo rispetto alla rappresentazione interna. Per esempio: 1, 34, -890 sono tutti int, immagazzinati interamente nello stesso numero di byte, mentre con la funzione fprintf saranno salvati su disco come campi di dimensione differente. Per aggiornare un record non si userà un accesso sequenziale con fprintf e fscanf, ma si preferirà riscrivere l intero file, per aggiornare in modo corretto anche tutti i record successivi. Corso Informatica A - Allievi Gestionali - prof. C. Silvano 28 Corso Informatica A Allievi Gestionali prof. C. Silvano 14

15 File ad accesso casuale I file ad accesso casuale hanno record di lunghezza fissa ai quali si può accedere in modo diretto (e quindi velocemente) senza passare attraverso gli altri record } byte offsets } 100 bytes } 100 bytes } 100 bytes } 100 bytes } 100 bytes } 100 bytes Corso Informatica A - Allievi Gestionali - prof. C. Silvano 29 File ad accesso casuale I dati memorizzati in una posizione prefissata possono essere aggiornati o cancellati senza distruggere gli altri dati memorizzati nel file. Nuovi dati possono essere inseriti in una posizione prefissata senza distruggere gli altri dati memorizzati nel file. Nei file ad accesso casuale i dati sono non formattati (memorizzati come "raw bytes") Tutti i dati dello stesso tipo (per esempio int) usano la stessa quantità di memoria. Tutti i record dello stesso tipo hanno una lunghezza prefissata Corso Informatica A - Allievi Gestionali - prof. C. Silvano 30 Corso Informatica A Allievi Gestionali prof. C. Silvano 15

16 Funzioni di input/output non formattate (accesso per blocchi) E possibile accedere in lettura o scrittura ai dati di un file leggendo o scrivendo un intero blocco di dati. fwrite Trasferisce un numero di byte prefissato da un vettore ad un file. Per esempio: fwrite(&number, sizeof(int), 1, myptr); &number Puntatore al vettore dal quale trasferire i byte. sizeof(int) Numero di byte da trasferire 1 Numero di elementi da trasferire myptr File nel quale trasferire i byte Corso Informatica A - Allievi Gestionali - prof. C. Silvano 31 Funzioni di input/output non formattate (accesso per blocchi) fread - Trasferisce un numero di byte prefissato da un file ad un vettore. Per esempio: fread(&client, sizeof(struct clientdata), 1, myptr); La funzione fread può essere usata per leggere da un file degli elementi a lunghezza fissa ad un vettore, fornendo come primo argomento il puntatore al vettore e come terzo argomento quanti elementi devono essere letti. Corso Informatica A - Allievi Gestionali - prof. C. Silvano 32 Corso Informatica A Allievi Gestionali prof. C. Silvano 16

17 Funzione fwrite size_t fwrite(const void *ptr, size_t dimensione, size_t nmemb, FILE *fp) Scrive nel file un massimo di nmemb elementi di dimensione specificata da dimensione, leggendoli dal vettore puntato da ptr. La funzione restituisce il numero di elementi scritti con successo. L indicatore di posizione del file sarà fatto avanzare del numero di caratteri scritti con successo. Corso Informatica A - Allievi Gestionali - prof. C. Silvano 33 Funzione fread size_t fread(void *ptr, size_t dimensione, size_t nmemb, FILE *fp) Legge dal file un massimo di nmemb elementi di dimensione specificata da dimensione, memorizzandoli nel vettore puntato da ptr. La funzione restituisce il numero di elementi letti con successo. L indicatore di posizione del file sarà fatto avanzare del numero di caratteri letti con successo. Corso Informatica A - Allievi Gestionali - prof. C. Silvano 34 Corso Informatica A Allievi Gestionali prof. C. Silvano 17

18 Esempi Scrittura di una struct in un file: fwrite(&myobject, sizeof(struct mystruct), 1, myptr); sizeof Restituisce la dimensione in byte dell oggetto contenuto tra parentesi Per scrivere gli elementi di un vettore è necessario passare il puntatore al vettore come primo elemento e il numero di elementi da scrivere come terzo argomento. fwrite(&myarray, sizeof(int), sizeof(myarray), myptr); Corso Informatica A - Allievi Gestionali - prof. C. Silvano 35 1 /* Fig : fig11_11.c 2 Creating a randomly accessed file sequentially */ 3 #include <stdio.h> 4 5 struct clientdata { 6 int acctnum; 7 char lastname[ 15 ]; 8 char firstname[ 10 ]; 9 double balance; 10 }; int main() 13 { 14 int i; 15 struct clientdata blankclient = { 0, "", "", 0.0 }; 16 FILE *cfptr; if ( ( cfptr = fopen( "credit.dat", "w" ) ) == NULL ) 19 printf( "File could not be opened.\n" ); 20 else { for ( i = 1; i <= 100; i++ ) 23 fwrite( &blankclient, 24 sizeof( struct clientdata ), 1, cfptr ); fclose( cfptr ); 27 } return 0; 30 } Corso Informatica A Allievi Gestionali prof. C. Silvano 18

19 1 /* Fig : fig11_15.c 2 Reading a random access file sequentially */ 3 #include <stdio.h> 4 5 struct clientdata { 6 int acctnum; 7 char lastname[ 15 ]; 8 char firstname[ 10 ]; 9 double balance; 10 }; int main() 13 { 14 FILE *cfptr; 15 struct clientdata client = { 0, "", "", 0.0 }; if ( ( cfptr = fopen( "credit.dat", "r" ) ) == NULL ) 18 printf( "File could not be opened.\n" ); 19 else { 20 printf( "%-6s%-16s%-11s%10s\n", "Acct", "Last Name", 21 "First Name", "Balance" ); while (!feof( cfptr ) ) { 24 fread( &client, sizeof( struct clientdata ), 1, 25 cfptr ); if ( client.acctnum!= 0 ) 28 printf( "%-6d%-16s%-11s%10.2f\n", 29 client.acctnum, client.lastname, 30 client.firstname, client.balance ); 31 } fclose( cfptr ); 34 } return 0; 37 } Acct Last Name First Name Balance 29 Brown Nancy Dunn Stacey Barker Doug Smith Dave Stone Sam Corso Informatica A Allievi Gestionali prof. C. Silvano 19

20 Scrivere i dati in modo casuale in un file ad accesso casuale Per scrivere dei dati in posizioni specifiche di un file è necessario usare la funzione fseek per impostare il File Position Pointer in una posizione specifica e poi usare la funzione fwrite per scrivere i dati. Per esempio: fseek(myptr, offset, symbolic_constant); myptr puntatore al file offset offset da aggiungere alla symbolic_constant symbolic_constant specifica la posizione del file dalla quale partire ad aggiungere l offset Corso Informatica A - Allievi Gestionali - prof. C. Silvano 39 Funzione fseek int fseek(file *fp, long int offset, int whence) Imposta l indicatore di posizione del file nella posizione calcolata aggiungendo un numero di byte pari a offset alla posizione specificata dall argomento whence, che può assumere i seguenti valori: SEEK_SET inizio file SEEK_CUR locazione corrente nel file SEEK_END fine del file Corso Informatica A - Allievi Gestionali - prof. C. Silvano 40 Corso Informatica A Allievi Gestionali prof. C. Silvano 20

21 1 /* Fig : fig11_12.c 2 Writing to a random access file */ 3 #include <stdio.h> 4 5 struct clientdata { 6 int acctnum; 7 char lastname[ 15 ]; 8 char firstname[ 10 ]; 9 double balance; 10 }; int main() 13 { 14 FILE *cfptr; 15 struct clientdata client = { 0, "", "", 0.0 }; if ( ( cfptr = fopen( "credit.dat", "r+" ) ) == NULL ) 18 printf( "File could not be opened.\n" ); 19 else { 20 printf( "Enter account number" 21 " ( 1 to 100, 0 to end input )\n? " ); 22 scanf( "%d", &client.acctnum ); while ( client.acctnum!= 0 ) { 25 printf( "Enter lastname, firstname, balance\n? " ); 26 fscanf( stdin, "%s%s%lf", client.lastname, 27 client.firstname, &client.balance ); 28 fseek( cfptr, ( client.acctnum - 1 ) * 29 sizeof( struct clientdata ), SEEK_SET ); 30 fwrite( &client, sizeof( struct clientdata ), 1, 31 cfptr ); 32 printf( "Enter account number\n? " ); 33 scanf( "%d", &client.acctnum ); 34 } fclose( cfptr ); 37 } return 0; 40 } Enter account number (1 to 100, 0 to end input)? 37 Enter lastname, firstname, balance? Barker Doug 0.00 Enter account number? 29 Enter lastname, firstname, balance? Brown Nancy Enter account number? 96 Enter lastname, firstname, balance? Stone Sam Corso Informatica A Allievi Gestionali prof. C. Silvano 21

22 Enter account number? 88 Enter lastname, firstname, balance? Smith Dave Enter account number? 33 Enter lastname, firstname, balance? Dunn Stacey Enter account number? 0 Corso Informatica A Allievi Gestionali prof. C. Silvano 22

Se vogliamo cambiarlo: i dati vengono sovrascritti. 300 White Jones (vecchio valore) 300 Worthington 0.00

Se 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

Dettagli

I file Laboratorio di Linguaggi di Programmazione a.a. 2001/2002

I 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

Dettagli

I files (archivi) Il C definisce in stdio.h tre file aperti automaticamente: stdin, stdout e stderr.! Sono ad accesso sequenziale diretto

I files (archivi) Il C definisce in stdio.h tre file aperti automaticamente: stdin, stdout e stderr.! Sono ad accesso sequenziale diretto C I files di dati I files (archivi) Files di programmi sono solo gestiti dal compilatore C Files di dati Possono essere creati, aggiornati, letti, scritti da programmi C Servono per conservare dati su

Dettagli

Capitolo 11 Elaborazione di file

Capitolo 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

Dettagli

Files in C endofile

Files in C endofile Files in C Il C vede i file semplicemente come un flusso (stream) sequenziale di bytes terminati da un marcatore speciale che determina la fine del file (end-of-file). 0 1 2 3 4... endofile A differenza

Dettagli

Capitolo 11 Elaborazione di file

Capitolo 11 Elaborazione di file Capitolo 11 Elaborazione di file Introduzione La gerarchia dei dati File e Stream Creare un file ad accesso sequenziale Lettura di dati da un file ad accesso sequenziale File ad accesso casuale Creare

Dettagli

Capitolo 11 Elaborazione di file

Capitolo 11 Elaborazione di file Capitolo 11 Elaborazione di file 1 Obiettivi 2 11.1 Introduzione 11.2 La gerarchia dei dati 11.3 File e Stream 11.4 Creare un file ad accesso sequenziale 11.5 Lettura di dati da un file ad accesso sequenziale

Dettagli

Gestione dei file in C

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

Dettagli

FILE BINARI. I file di testo non sono indispensabili: sono semplicemente comodi 1

FILE 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

Dettagli

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. File. Marco D. Santambrogio Ver. aggiornata al 6 Marzo 2016

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. File. Marco D. Santambrogio Ver. aggiornata al 6 Marzo 2016 File Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 6 Marzo 2016 Obiettivi Il salvataggio dei dati File File e OS File in C 2 3 I programmi che abbiamo considerato finora. Perdono

Dettagli

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. File. Marco D. Santambrogio Ver. aggiornata al 21 Maggio 2014

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. File. Marco D. Santambrogio Ver. aggiornata al 21 Maggio 2014 File Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 21 Maggio 2014 Obiettivi Il salvataggio dei dati File File e OS File in C 2 3 I programmi che abbiamo considerato finora. Perdono

Dettagli

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. File. Marco D. Santambrogio Ver. aggiornata al 15 Maggio 2015

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. File. Marco D. Santambrogio Ver. aggiornata al 15 Maggio 2015 File Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 15 Maggio 2015 2nda prova in itinere Era il 21 Maggio 2 2nda prova in itinere Era il 21 Maggio Spostata (da 3 settimane) al 22

Dettagli

GESTIONE DEI FILE IN C. Docente: Giorgio Giacinto AA 2008/2009

GESTIONE 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

Dettagli

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. File. Marco D. Santambrogio Ver. aggiornata al 15 Maggio 2013

DIPARTIMENTO 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

Dettagli

Gestione dei file in C

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

Dettagli

Laboratorio di Programmazione

Laboratorio di Programmazione Laboratorio di Programmazione (Laurea triennale in matematica) Lezione 26 Sommario: Gestione dei file in C. File ad accesso sequenziale: apertura, chiusura, lettura e scrittura. File binari. Gestione files

Dettagli

Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Introduzione al C Unità 9 File

Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Introduzione al C Unità 9 File Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Introduzione al C Unità 9 File D. Bloisi, A. Pennisi, S. Peluso, S. Salza, C. Ciccotelli Sommario Input/Output

Dettagli

Operazioni su file di caratteri

Operazioni 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

Dettagli

Corso di Informatica A.A

Corso di Informatica A.A Corso di Informatica A.A. 2009-2010 Lezione 13 Corso di Informatica 2009-2010 Lezione 13 1 Input/output da file Stream Si definisce stream una sequenza di bytes di dati che può essere in ingresso (input

Dettagli

Streams e disk files

Streams e disk files Streams e disk files Streams 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: Testo: sequenza

Dettagli

Gestione dei File. Credits Prof. Campi

Gestione dei File. Credits Prof. Campi Gestione dei File Credits Prof. Campi 1 Perché i file? Sono strutture dati persistenti Sono solitamente memorizzati sui dischi Si usano dall'interno dei programmi Realizzano la persistenza dei dati cioè

Dettagli

Input/output da file I/O ANSI e I/O UNIX FLUSSI E FILE FLUSSI FLUSSI di TESTO FLUSSI BINARI FILE

Input/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

Dettagli

Linguaggio C: i file

Linguaggio 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

Dettagli

Introduzione al C. Stream e disk file

Introduzione 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:

Dettagli

Il linguaggio C. Breve panoramica su stdio.h

Il 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

Dettagli

La gestione dei file in C

La gestione dei file in C Gestione dei file 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,

Dettagli

Gestione dei file. Linguaggio ANSI C Input/Output - 13

Gestione 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

Dettagli

Premessa. Input /output e gestione dei file. I file e gli stream. Il puntatore al file. 21. I FILE NEL LINGUAGGIO C Versione 1.

Premessa. 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

Dettagli

Introduzione al C. Unità 9 File. D. Bloisi, S. Peluso, A. Pennisi, S. Salza

Introduzione 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

Dettagli

Perchè i files? Realizzano la persistenza dei dati. Sono delle strutture di dati sequenziali. dati che sopravvivono all esecuzione del programma

Perchè i files? Realizzano la persistenza dei dati. Sono delle strutture di dati sequenziali. dati che sopravvivono all esecuzione del programma Perchè i files? Realizzano la persistenza dei dati dati che sopravvivono all esecuzione del programma Sono delle strutture di dati sequenziali Files e S.O. I files sono gestiti dal S.O. e resi visibili

Dettagli

Introduzione. 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. 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

Dettagli

FILE: 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 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

Dettagli

Esercitazioni di Fondamenti di Informatica - Lez. 9 4/12/2018

Esercitazioni di Fondamenti di Informatica - Lez. 9 4/12/2018 Esercitazioni di Fondamenti di Informatica - Lez. 9 /1/018 Esercizi sulla gestione dei file in C Il codice degli esercizi e contenuto nella cartella parte1 1. Creare una funzione C che legga tutto cio

Dettagli

I files in C. A cura del prof. Ghezzi

I 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

Dettagli

FONDAMENTI DI INFORMATICA. Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI. Facoltà di Ingegneria Università degli Studi di Udine

FONDAMENTI DI INFORMATICA. Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI. Facoltà di Ingegneria Università degli Studi di Udine FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Linguaggio C I file 2001 Pier Luca Montessoro - Davide Pierattoni (vedere

Dettagli

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter Informatica B a.a 2005/06 (Meccanici 4 squadra) Scaglione: da PO a ZZZZ PhD. Ing. Michele Folgheraiter Ripasso Liste: typedef struct EL{TipoElemento Info; struct EL *Prox;} ElemLista; typedef ElemLista

Dettagli

Gestione dei file. Stefano Ferrari. Università degli Studi di Milano Programmazione. anno accademico

Gestione 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

Dettagli

Corso di Fondamenti di Programmazione canale E-O. Introduzione. Elaborazione dei files (2)

Corso di Fondamenti di Programmazione canale E-O. Introduzione. Elaborazione dei files (2) Corso di Fondamenti di Programmazione canale E-O Tiziana Calamoneri L elaborazione dei files in C DD, Cap. 11 + pp. 569-572 KP, pp. 581-583 Introduzione La memorizzazione dei dati nelle variabili e nei

Dettagli

Linguaggio C Gestione File

Linguaggio 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

Dettagli

snapshot della memoria rappresentazioni interne binarie di numeri immagini, audio, musica, volendo, anche caratteri

snapshot della memoria rappresentazioni interne binarie di numeri immagini, audio, musica, volendo, anche caratteri FILE BINARI Un file binario è una pura sequenza di byte, senza alcuna strutturazione particolare Èun'astrazione di memorizzazione assolutamente generale, usabile per memorizza- re su file informazioni

Dettagli

File. Molto astratta: file ha un nome (ex. Pippo.c), ed altre caratteristiche (dimensione, tipo, etc). Operazioni: copiare, cancellare, eseguire..

File. Molto astratta: file ha un nome (ex. Pippo.c), ed altre caratteristiche (dimensione, tipo, etc). Operazioni: copiare, cancellare, eseguire.. File I file sono una illusione creata dal Sistema Operativo(SO) Il SO usa opportune strutture dati per implementare tale astrazione (ad esempio: File Control Block, FCB) Sono usati per memorizzare in modo

Dettagli

GESTIONE DEI FILE IN C

GESTIONE 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

Dettagli

Capitolo 5 -- Stevens

Capitolo 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

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica Corso di Laurea in Informatica e Tecnologie per la Produzione del Sofware (Track B) - A.A. 2016/2017 Laboratorio di Informatica Elaborazione di File docente: Cataldo Musto cataldo.musto@uniba.it Slides

Dettagli

File. Titolo presentazione sottotitolo. Federico Reghenzani

File. Titolo presentazione sottotitolo. Federico Reghenzani File Titolo presentazione sottotitolo Informatica ed Elementi Informatica Medica Milano,diXX mese 20XX Introduzione Memorie e fiesystem (1/3) In un calcolatore possiamo identificare due categorie di memorie:

Dettagli

File binari e file di testo

File 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

Dettagli

I 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. 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

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica Corso di Laurea in Informatica e Tecnologie per la Produzione del Software (Track B) - A.A. 2017/2018 Laboratorio di Informatica Elaborazione di File docente: Cataldo Musto cataldo.musto@uniba.it Slides

Dettagli

Input / Output. Come già detto, input e output sono realizzati in C da funzioni di stdio.h all'interno della libreria standard

Input / 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

Dettagli

File file di testo file binari

File file di testo file binari File In C i file vengono distinti in due categorie: file di testo, trattati come sequenze di caratteri. organizzati in linee (ciascuna terminata da '\n') file binari, visti come sequenze di bit File di

Dettagli

ELEMENTI DI INFORMATICA. Linguaggio C

ELEMENTI DI INFORMATICA. Linguaggio C Università degli Studi di Cagliari Corso di Laurea in Ingegneria Elettronica ELEMENTI DI INFORMATICA http://agile.diee.unica.it A.A. 2015/2016 Ing. Marco Ortu Diee, secondo piano Tel. 070-6755774 mail:

Dettagli

INFORMATICA. I file. File. File. File

INFORMATICA. I file. File. File. File INFORMATICA File Per rendere più uniforme possibile il comportamento dei programmi in relazione alla grande varietà dei dispositivi periferici, i linguaggi moderni fanno riferimento ad un modello : i periferici

Dettagli

L accesso ai dispositivi esterni (tastiera, monitor, file,...) viene gestito mediante canali di comunicazione.

L 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

Gestione dei File C. Generalità

Gestione 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

Dettagli

Gestione dei File. dischi nastri cd

Gestione 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

Dettagli

Matrici, stringhe e I/O da file

Matrici, 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

Dettagli

I/O da file. Matrici. Stringhe. Memory leakage. Matrici, stringhe e I/O da file

I/O da file. Matrici. Stringhe. Memory leakage. Matrici, stringhe e I/O da file Matrici, stringhe e I/O da file Memory leakage Matrici Stringhe 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

Dettagli

Laboratorio di Informatica Ingegneria Clinica Lezione 30/11/2011

Laboratorio 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

Dettagli

Input / Output. Come già detto, input e output sono realizzati in C da funzioni di stdio.h all'interno della libreria standard

Input / 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

Dettagli

Indice. La gestione dei file in C e gli stream. Apertura e chiusura di un file. Operazioni sui file. Accesso sequenziale e non sequenziale

Indice. 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

Dettagli

Gestione dei File in C

Gestione 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

Dettagli

Prof. G. Ascia. Gestione dei File C

Prof. G. Ascia. Gestione dei File C 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

Dettagli

DOTT. ING. LEONARDO RIGUTINI DIPARTIMENTO INGEGNERIA DELL INFORMAZIONE UNIVERSITÀ DI SIENA VIA ROMA 56 53100 SIENA UFF. 0577234850-7102 RIGUTINI@DII

DOTT. 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/

Dettagli

Gestione dei file in C

Gestione dei file in C Gestione dei file in C Generalità Il linguaggio C non contiene alcuna istruzione di Input/Output. Tali operazioni vengono svolte mediante chiamate a funzioni definite nella libreria standard contenute

Dettagli

Corso di Algoritmi e Strutture Dati Lezione del Esercitatrice: dott.ssa Susanna Cozza. L argomento della lezione

Corso di Algoritmi e Strutture Dati Lezione del Esercitatrice: dott.ssa Susanna Cozza. L argomento della lezione L argomento della lezione Dall informazione al file Per permettere il riutilizzo di informazioni oltre la durata dei programmi che le hanno prodotte, i dati sono allocati su dispositivi in memoria secondaria.

Dettagli

Input/output console file caratteri stringhe formattato ascii binari

Input/output console file caratteri stringhe formattato ascii binari Input/output Input/Output Input/output console file caratteri stringhe formattato ascii binari La libreria standard del C La libreria standard del C è in realtà un insieme di librerie Per usare una libreria,

Dettagli

Gestione 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 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 è

Dettagli

Scrittura formattata - printf

Scrittura 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

Dettagli

Settimana n.12. Obiettivi File!di!testo. Contenuti Concetto!di!file!e!funzioni! fopen/fclose Funzioni!fgets+sscanf Approfondimenti!su!printf! e!

Settimana n.12. Obiettivi File!di!testo. Contenuti Concetto!di!file!e!funzioni! fopen/fclose Funzioni!fgets+sscanf Approfondimenti!su!printf! e! Settimana n.12 Obiettivi File!di!testo Contenuti Concetto!di!file!e!funzioni! fopen/fclose Funzioni!fgets+sscanf Approfondimenti!su!printf! e!scanf 437 Files Vista d insieme dei formati di file File File

Dettagli

I file. un file è una sorgente/destinazione di dati per diversi attori

I 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

Dettagli

Suggerimenti, note utili ed errori comuni. Fondamenti di informatica T

Suggerimenti, 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

Dettagli

Gestione dei File C. Generalità

Gestione 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

Dettagli

File e puntatori a file

File 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

Dettagli

Indice. La gestione dei file in C e gli stream. Apertura e chiusura di un file. Operazioni sui file. Accesso sequenziale e non sequenziale

Indice. 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 La gestione del buffer Gestione dei file in C In C all interno

Dettagli

Esercizi. I File ed il C

Esercizi. 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

Dettagli

Gestione dei File. Indice. Il file system in C. Principali operazioni sui file (dalla Standard Library) Esempi. Corso di Informatica A.

Gestione 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

Dettagli

Laboratorio di Sistemi Operativi Marzo-Giugno 2008 Matricole congrue 0 mod 3

Laboratorio di Sistemi Operativi Marzo-Giugno 2008 Matricole congrue 0 mod 3 Marzo-Giugno 2008 Matricole congrue 0 mod 3 Libreria standard di I/O Libreria standard di I/O Permette di fare I/O senza doversi preoccupare di problematiche di bufferizzazione Definizione del buffer Taglia

Dettagli

Le 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. 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

Dettagli

Laboratorio 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 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

Dettagli

Laboratorio di Sistemi Operativi primavera 2009

Laboratorio 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

Dettagli

Titolo presentazione INFORMATICA. sottotitolo A.A Milano, XX mese 20XX Laboratorio n 4 Ing. Gian Enrico Conti Dott.

Titolo presentazione INFORMATICA. sottotitolo A.A Milano, XX mese 20XX Laboratorio n 4 Ing. Gian Enrico Conti Dott. Titolo presentazione INFORMATICA A sottotitolo A.A. 2017-18 Milano, XX mese 20XX Laboratorio n 4 Ing. Gian Enrico Conti Dott. Michele Zanella Info Logistiche (cont d) Calendario laboratori Data Orario

Dettagli

Le 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. 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

Dettagli

Gestione File di testo

Gestione File di testo Gestione File di testo In primo luogo diamo alcune nozioni di base su come è gestito l'i/o in ANSI C. Osserviamo subito che in ANSI C non sono direttamente definite delle istruzioni per l' Input/Output

Dettagli

I file possono essere manipolati (aperti, letti, scritti ) all interno di programmi C. dischi nastri cd

I 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

Dettagli

GESTIONE DEI FILE. File come tipo di dati

GESTIONE DEI FILE. File come tipo di dati GESTIONE DEI FILE File come tipo di dati Nel linguaggio C, i file vengono trattati come un tipo di dati derivato, cioè ottenuto dai tipi elementari esistenti. In pratica, quando si apre e si gestisce un

Dettagli

Gestione dei file. File di testo e binari

Gestione 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

Dettagli

La gestione dell'errore

La gestione dell'errore La gestione dell'errore Esiste una variabile globale intera, definita nell'header errno.h che viene settata nel caso in cui una chiamata di sistema non possa eseguire correttamente il suo compito. Tale

Dettagli

A. Ferrari. File. in C

A. 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)

Dettagli

Input / Output. Come già detto, input e output sono realizzati in C da funzioni di stdio.h all'interno della libreria standard

Input / 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

Dettagli

D Alcune funzioni della libreria standard del C

D Alcune funzioni della libreria standard del C D Alcune funzioni della libreria standard del C In questa appendice forniamo una descrizione dettagliata dei principali sottoprogrammi della libreria standard del C. In particolare, il Paragrafo D.1 tratta

Dettagli

Lezione 7: Funzioni e gestione dei File

Lezione 7: Funzioni e gestione dei File Lezione 7: Funzioni e gestione dei File Laboratorio di Elementi di Architettura e Sistemi Operativi 18 Aprile 2012 Le funzioni Funzioni Un programma C consiste di una o più funzioni Almeno main() Funzionamento

Dettagli

Introduzione al C. Unità 9 File

Introduzione al C. Unità 9 File Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Introduzione al C Unità 9 File D. Bloisi, A. Pennisi, S. Peluso, S. Salza Sommario Unità 9 Input/Output

Dettagli

FILE SEQUENZIALI E AD ACCESSO DIRETTO

FILE SEQUENZIALI E AD ACCESSO DIRETTO FILE SEQUENZIALI E AD ACCESSO DIRETTO L input-output astratto (stream) Le periferiche disponibili in un sistema di elaborazione sono, dal punto di vista hardware, anche molto diverse fra di loro anche

Dettagli

Sommario. Manipolazione sequenziale di file in C Funzioni di base per I/O di file

Sommario. 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

Dettagli

Struttura dati FILE. Motivazioni: memorie a confronto

Struttura 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

Dettagli

file fisico file logico

file 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

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica Record Laboratorio di Informatica Ingegneria Meccanica Lezione 9, 6 dicembre 2007 versione 18 dicembre 2007 Renato Menicocci Array: collezione di dati omogenei

Dettagli

Sulla libreria standard, III. Manipolare file con stdio.h

Sulla 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,

Dettagli

Il linguaggio C I file

Il linguaggio C I file 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

Dettagli