I file. un file è una sorgente/destinazione di dati per diversi attori
|
|
- Agnese Bellini
- 6 anni fa
- Visualizzazioni
Transcript
1 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 sorgente/destinazione di dati per diversi attori tipicamente uso un file per prima memorizzare delle informazioni, e poi per recuperarle in un secondo tempo Un file è visto da diversi elementi di un calcolatore: i programmi il file system (sistema operativo) Quale visione adottare? Quella dei linguaggi di programmazione (mettendo il concetto di file nel linguaggio stesso), o quella del sistema operativo (lasciando cioè la gestione dei file ad apposite librerie)? la tendenza moderna è di non definire la struttura dei file nei linguaggi di programmazione, lasciandola ad apposite librerie queste librerie sono system dependent, variano cioè da computer a computer I file sono strutture sostanzialmente sequenziali, anche se, quando è possibile, permettono un accesso diretto 1
2 File e flussi di comunicazione In C, le periferiche di ingresso e uscita (terminali, stampanti) sono viste come file I/O su file è del tutto analogo all'i/o su periferiche quindi anche analogo a I/O su standard input e output Per utilizzare un file occorre aprire un flusso di comunicazione da/verso il file: si dichiara una variabile di tipo puntatore a tipo FILE (FILE è un tipo definito in stdio.h) si apre il flusso tramite la funzione di libreria fopen fopen apre un file esistente o ne crea uno nuovo e restituisce un puntatore a FILE questo puntatore serve successivamente per riferirsi al file al termine delle operazioni di lettura/scrittura, il flusso di comunicazione deve essere chiuso tramite la funzione fclose questo impedisce ogni successivo riferimento al file nel programma Ci sono due tipi di flussi di comunicazione: binario o di tipo testo un flusso binario è una sequenza di byte quello che vedo arrivare dal (o vado a mettere nel) file sono sequenze di byte, che devo poi dire io come interpretare flusso di testo è sequenza di caratteri quello che vedo arrivare sono caratteri, sui quali posso eseguire le usuali operazioni sui caratteri la sequenza è suddivisa in linee terminate da carattere newline ('\n') la sequenza può subire qualche elaborazione per esempio, un newline mandato alla stampante viene tradotto in ritorno a capo + salto a nuova linea 2
3 Il tipo FILE e la funzione fopen FILE è un tipo strutturato che contiene, tra le altre cose: la modalità di utilizzo del file può essere lettura, scrittura o lettura e scrittura la posizione corrente sul file mi dice dove sono arrivato nel file, determina il prossimo byte/carattere da leggere o scrivere un indicatore di errore registra il verificarsi di errori di lettura/scrittura indicatore di end-of-file (eof) mi dice quando sono arrivato in fondo al file Alle informazioni contenute in una struttura FILE non accedo direttamente, ma tramite delle funzioni standard Esempio di dichiarazione variabile puntatore a file FILE*fp; Le variabili di tipo FILE non sono gestite dal programma ma dal sistema operativo Il sistema operativo gestisce una struttura per censire i file usati dai programmi in esecuzione Una cosa simile a questa (non è proprio questa la sua dichiarazione, è solo per dare un'idea...): FILE TabellaFileAperti[MaxNumFileGestibili]; Quando un programma chiama la fopen, vengono forniti i dati identificativi del file e della sua apertura: il nome del file una stringa di caratteri secondo le convenzioni del file system la modalità di utilizzo del file lettura, scrittura, lettura e scrittura La funzione fopen è un frammento di sistema operativo memorizza nella TabellaFileAperti (o chi per lei) un nuovo descrittore di file con campi per il nome del file, le modalità di utilizzo, la posizione del prossimo byte da leggere o scrivere etc... restituisce l'indirizzo della struttura di tipo FILE che descrive il file in questione 3
4 Flussi standard 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 StandardOutput StandardError FileUno FileDue FileTre Le dichiarazioni di tipi, costanti, funzioni si trovano nella libreria standard stdio.h va inclusa con la direttiva #include <stdio.h> Esistono tre flussi standard automaticamente aperti all esecuzione di ogni programma: stdin (normalmente associato alla tastiera) stdout (normalmente associato al video) stderr (normalmente associato al video) il valore di queste variabili viene (automaticamente) assegnato all inizio dell esecuzione di ogni programma printf e scanf fanno riferimento (implicito) ai flussi (file) stdout e stdin 4
5 Operazioni sui file Apertura di un file: FILE *fopen(char filename[], char mode[]); apre il file di nome filename o lo crea se il file non esiste 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, posizionamento a fine file (append) rb, wb e ab : come sopra ma modalità binaria a+ append e lettura, r+ lettura e scrittura, w+ scrittura e lettura rb+ lettura e scrittura binaria... etc. Chiusura di un file: int fclose(file *fp); chiude il file puntato da fp il descrittore di tipo FILE viene rilasciato restituisce 0 se l'operazione va a buon fine, altrimenti EOF (costante definita in stdio.h). Eliminazione di un file: int remove(char filename[]); cancella il file di nome filename restituisce 0 se l'operazione va a buon fine, un valore diverso da altrimenti Ridenominazione di un file: int rename(char oldname[], char newname[]); cambia nome al file restituisce 0 se l'operazione va a buon fine, un valore diverso da altrimenti Quando si tenta un'operazione anomala (per esempio cancellare o cambiare nome a un file aperto) il comportamento non è definito (dipende dall'implementazione) 5
6 Operazioni di gestione degli errori Nel descrittore di un file aperto ci sono due campi per registrare: una generica situazione di errore (campo error) il raggiungimento della fine del file, cioè il tentativo di leggere dati dopo l'ultimo (campo eof) Ci sono due funzioni apposite feof ed ferror per distinguere tra tipi diversi di errore nell accesso a file int ferror(file *fp); controlla se è stato commesso un errore in una precedente operazione di lettura o scrittura restituisce 0 se NON è stato commesso un errore,!=0 altrimenti int feof(file *fp) controlla se è stata raggiunta la fine del file restituisce 0 se NON è stata raggiunta la fine del file, diverso da 0 altrimenti void clearerr(file *fp) riporta i componenti eof ed error del descrittore al valore usuale 6
7 Operazioni di lettura e scrittura Vi sono 4 modi diversi per leggere/scrivere dati da/su file: 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 blocco per blocco in presenza di flussi binari. Lettura e scrittura precisando il formato dei dati 4 modi (2 già li conosciamo): int printf(stringa di controllo, elementi); int scanf(stringa di controllo, elementi); int fprintf(file *fp, stringa di controllo, elementi); int fscanf(file *fp, stringa di controllo, elementi); scanf e printf fanno riferimento a stdin e stdout fprintf e fscanf fanno riferimento al file (il cui descrittore è) passato come parametro tutte restituiscono il numero di elementi effettivamente letti o scritti restituiscono un numero negativo in caso di errore 7
8 Lettura e scrittura carattere per carattere Funzioni che leggono da/scrivono su file carattere per carattere: int getchar(); int putchar(int c); int getc(file *fp); int putc(int c, FILE *fp); int fgetc(file *fp); int fputc(int c, FILE *fp); le funzioni get restituiscono il carattere letto le funzioni put ricevono il carattere da scrivere e restituiscono il carattere scritto getchar e putchar fanno riferimento a stdin e stdout tutte restituiscono il valore EOF in caso di errore per distinguere tra fine file o un altro errore usare (dopo l'esecuzione della get/put) feof o ferror Esempio: programma che legge e mostra sul video il contenuto del file di tipo testo di nome 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 */ main() { FILE *fp; char c; fp = fopen("filechar", "r"); /* file aperto in lettura con modalità testo */ if (fp!= NULL){ c = fgetc(fp); while (c!= EOF){ putchar(c); c = fgetc(fp); fclose(fp); else { printf("il file non può essere aperto\n"); 8
9 Lettura e scrittura linea per linea linea sequenza di caratteri terminata da carattere newline 4 funzioni: gets e puts per lettura da stdin e scrittura su stdout fgets e fputs invece operano sul file specificato come parametro char *gets(char *s); legge fino a newline dopo i caratteri letti, in s mette \0 (non newline!!) restituisce NULL se c'è stato un errore int puts(char *s); scrive il contenuto di s, fino al carattere \0 escluso, e poi un carattere di newline restituisce 0 se operazione a buon fine, 0 altrimenti char *fgets(char *s, int n, FILE *fp) ; legge caratteri dal file fp (e li mette in s) fino a quando o ho letto n 1 elementi, o ho raggiunto un carattere newline, o ho raggiunto la fine del file inserisce in s eventuali newline incontrati poi inserisce in s carattere \0 restituisce NULL in caso di errore int fputs(char *s, FILE *fp); scrive nel file fp il contenuto di s fino a \0 escluso, poi newline restituisce 0 se operazione a buon fine, 0 altrimenti 9
10 Esempio La funzione copiaselettiva legge filein linea per linea e scrive, in fileout, solo le linee che contengono la stringa di riferimento ricevuta come parametro restituisce 1 se operazione a buon fine, 0 altrimenti #include <stdio.h> #include <stddef.h> #include <string.h> #define OK 1 #define ERROR 0 #define MAXLINE 100 int copiaselettiva(char refstr[]){ char line[maxline]; FILE *fin, *fout; fin = fopen("filein", "r"); /* filein e' aperto in lettura con modalita' testo */ if (fin == NULL) return ERROR; fout = fopen("fileout", "w"); /* fileout e' aperto in scrittura con modalita' testo */ if(fout == NULL){ fclose(fin); return ERROR; while(fgets(line, MAXLINE, fin)!= NULL){ /* fgets legge da filein al più MAXLINE 1 caratteri * e assegna a line i caratteri letti, inclusi * eventuali newline, e termina la stringa con \0 */ if(strstr (line, refstr)!= NULL){ /* strstr restituisce posizione della prima * occorrenza della stringa refstr nella stringa * line; se refstr non è contenuta in line viene * restituito NULL */ fputs(line, fout); fclose(fin); fclose(fout); return OK; 10
11 Lettura e scrittura per blocchi int fread(void *ptr, dimelemento, numelementi, FILE *fp); legge e memorizza a partire dall'indirizzo di memoria ptr restituisce il numero elementi letti se quanto viene letto è inferiore a quanto richiesto usare feof o ferror per capirne il motivo int fwrite(void *ptr, dimelemento, numelementi, FILE *fp); scrive i dati prelevandoli in memoria a partire dall'indirizzo ptr restituisce il numero di elementi scritti se quanto viene scritto è inferiore a quanto richiesto usare feof o ferror per capirne il motivo fread e fwrite sono utili per la lettura e scrittura di dati di tipo strutturato Usati tipicamenti per leggere e scrivere file binari Esempio di funzione: si abbia un parametro pp che è il descrittore di un file con record di tipo Persona la struttura Persona contiene campi nome, cognome, indirizzo si vuole aggiungere un campo CodiceFiscale e mettere i dati completi nel file il cui descrittore è passato in un parametro np i codici fiscali vengono letti da un file cf, passato come parametro i file pp e cf sono assunti aperti in lettura e scrittura il file np è assunto aperto in scrittura tutti i file sono binari Codifichiamo la funzione AggiornaPersone 11
12 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; Esempio (cont.) int AggiornaPersone (FILE *pp, FILE *cf, FILE *np){ Persona perscorr; CodFisc cfcorr; NuovaPersona nuovaperscorr; rewind(pp); /* rewind porta la posizione corrente nel file * sul primo byte del file */ rewind(cf); rewind(np); while(fread(&perscorr,sizeof(persona),1,pp)!= 0){ /* non raggiunta la fine del file pp */ fread(&cfcorr, sizeof(codfisc), 1, cf); /* NB le strcpy seguenti sono di fatto * assegnamenti tra array di caratteri */ strcpy(nuovaperscorr.nome, perscorr.nome); strcpy(nuovaperscorr.cognome, perscorr.cognome); strcpy(nuovaperscorr.indirizzo, perscorr.indirizzo); strcpy(nuovaperscorr.codicefiscale, cfcorr); fwrite(&nuovaperscorr,sizeof(nuovapersona),1,np); 12
13 Accesso diretto Accedere in modo diretto ad un file significa accedere direttamente a un particolare byte di un file praticamente come se il file fosse un array int fseek(file *fp, long offset, int refpoint); imposta la posizione corrente come spostata di offset rispetto a: inizio del file se refpoint vale SEEK_SET attuale posizione corrente se refpoint vale SEEK_CUR fine del file se refpoint vale SEEK_END SEEK_SET, SEEK_CUR e SEEK_END sono costanti di stdio.h restituisce 0 se operazione a buon fine, 0 altrimenti long ftell(file *fp); restituisce la posizione corrente nel file fp per i file aperti in modo binario è il numero di byte dall inizio per i file aperti in modo testo il numero dipende dalla implementazione void rewind(file *fp); fare rewind(f) è come fare fseek(f,0,seek_set) riavvolge il file, rimettendo la posizione corrente all'inizio rewind però non ritorna alcun valore Tipicamente si accede in modo diretto ai file aperti in modo binario, non a quelli aperti in modo carattere 13
14 Esempio Si vuole invertire il contenuto del file numint contenente interi (si vuole cioè scambiare il primo elemento con l'ultimo, il secondo con il penultimo etc.) il file verrà aperto in modalità binaria #include <stdio.h> #include <stddef.h> #include <stdlib.h> main() { FILE *f; long int inizio, fine; int tempi, tempf; f = fopen("numint", "rb+"); /* il file e' aperto in read/write in modo binario */ if(f == NULL){ puts("non è stato possibile aprire il file numint"); /* si noti l'uso di puts al posto di printf */ exit(1); /* exit provoca la conclusione non anomala del * programma e la restituzione del controllo al * sistema operativo */ inizio = 0; fseek(f, sizeof(int), SEEK_END); fine = ftell(f); /* comincio con il mettere il valore di fine * sull'ultimo intero prima della fine del file */ while (inizio < fine){ fseek(f, inizio, SEEK_SET); fread(&tempi, sizeof(int), 1, f); fseek(f, fine, SEEK_SET); fread(&tempf, sizeof(int), 1, f); /* devo riposizionarmi perche' il precedente fread * ha * spostato la posizione corrente sull'elemento * successivo */ fseek (f, fine, SEEK_SET); fwrite (&tempi, sizeof(int), 1, f); fseek (f, inizio, SEEK_SET); fwrite (&tempf, sizeof(int), 1, f); inizio = inizio + sizeof(int); fine = fine sizeof(int); 14
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
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/
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:
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
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
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
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 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
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
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
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 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
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
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
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
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.
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,
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
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,
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
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
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
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
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
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
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
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
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
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
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
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
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,
DettagliMATLAB: FILES. Informatica B/C - A.A. 2013/2014
MATLAB: FILES Informatica B/C - A.A. 2013/2014 I FILE Contenitori di informazione: sequenze di byte associate ad un nome Sono memorizzati su memoria di massa (non-volatile) Possono continuare ad esistere
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
DettagliCaratteri e stringhe
Caratteri e stringhe Caratteri Dato che un computer può memorizzare esclusivamente sequenze di bit, per memorizzare un carattere (e quindi testi) è necessario stabilire una convenzione che associa a un
DettagliGESTIONE DEI FILE IL CONCETTO DI FILE APERTURA E CHIUSURA DI UN FILE OPERARE SUI FILE
GESTIONE DEI FILE Per poter mantenere disponibili i dati tra le diverse esecuzioni di un programma (persistenza dei dati) è necessario poterli archiviare su memoria di massa Un file è una astrazione fornita
DettagliLaboratorio di Algoritmi e Strutture Dati
Laboratorio di Algoritmi e Strutture Dati Docente: Camillo Fiorentini 16 ottobre 2007 1 Rappresentazioni di caratteri in C In C un carattere è una costante intera il cui valore è dato dal codice ASCII
DettagliGestione di files Motivazioni
Gestione di files Motivazioni Un programma in esecuzione legge (sequenzialmente) una sequenza di caratteri prodotti "al volo" dall'utente (tramite tastiera) il programma in esecuzione scrive (sequenzialmente)
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
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
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
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
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.
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 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
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
DettagliPrecedenza e associatività. Complementi sul C - 2. Esempi. Esempi
Complementi sul C - 2 Ver. 2.4 2010 - Claudio Fornaro - Corso di programmazione in C Precedenza e associatività () [] ->. S D! ~ ++ + * & (cast ) sizeof S D * / % S D + - (somma e sottrazione) S D >
DettagliEsercizi File Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Domenico Daniele Bloisi Si ringrazia Raffaele Nicolussi Docenti Parte I prof. Silvio Salza salza@dis.uniroma1.it
DettagliGESTIONE DEI FILE IL CONCETTO DI FILE
GESTIONE DEI FILE Per poter mantenere disponibili i dati tra le diverse esecuzioni di un programma (persistenza dei dati) è necessario poterli archiviare su memoria di massa Un file è una astrazione fornita
DettagliLinguaggio C: Stringhe di caratteri e File
Linguaggio C: Stringhe di caratteri e File ESEMPIO: Lettura da tastiera e stampa a video di una sequenza di caratteri #include main() int c; printf("inserisci dei caratteri"); printf("(
DettagliStruttura a record. File ad accesso diretto. Modalità di apertura. Modalità di apertura
Struttura a record 2 File ad accesso diretto Il file è organizzato in record aventi tutti la stessa struttura e quindi dimensione record 0 record 1 record 2 Ver. 2.4 2010 - Claudio Fornaro - Corso di programmazione
DettagliSTRINGHE: ARRAY DI CARATTERI! a p e \0
STRINGHE: ARRAY DI CARATTERI! Una stringa di caratteri in C è un array di caratteri terminato dal carattere '\0' s a p e \0 0 1 2 3 Un vettore di N caratteri può dunque ospitare stringhe lunghe al più
DettagliARCHIVI E FILE. Prof. Ciaschetti
ISTITUTO DI ISTRUZIONE SUPERIORE ANGIOJ ARCHIVI E FILE Prof. Ciaschetti Un archivio è un insieme di registrazioni (record) memorizzate in modo persistente, cioè resta memorizzato permanentemente, anche
DettagliOTTAVA ESPERIENZA DI LABORATORIO. L elaborazione dei files in C
CORSO DI LABORATORIO DI INFORMATICA CORSO DI LAUREA IN SDM ANNO ACCADEMICO 2011-2012 Docente: R. Sparvoli Esercitazioni: R. Sparvoli, F. Palma OTTAVA ESPERIENZA DI LABORATORIO L elaborazione dei files
DettagliStringhe e allocazione dinamica della memoria
Stringhe e allocazione dinamica della memoria Esercizio Scrivere un programma strings.c che legge da standard input una sequenza di parole separate da uno o più spazi, e stampa le parole lette, una per
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++
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
DettagliUnità Didattica 5 Linguaggio C. Stringhe. Accesso a file ASCII. Strutture.
Unità Didattica 5 Linguaggio C Stringhe. Accesso a file ASCII. Strutture. 1 Stringhe Una stringa è una sequenza di caratteri (es: ciao, sd!n29dnqa ); In C non esiste una variabile di tipo stringa; Una
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
DettagliL Allocazione Dinamica della Memoria
L Allocazione Dinamica della Memoria Maurizio Palesi DIIT Università di Catania Viale Andrea Doria 6, 95125 Catania mpalesi@diit.unict.it http://www.diit.unict.it/users/mpalesi Sommario Questo documento
Dettaglipuntatori Lab. Calc. AA 2007/08 1
puntatori Lab. Calc. AA 2007/08 1 parametri delle funzioni (dalla lezione scorsa) gli argomenti in C vengono passati by value dalla funzione chiamante alla funzione chiamata la lista degli argomenti viene
DettagliInput/output in C e in C++
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Input/output in C e in C++ 2001 Pier Luca Montessoro - Davide Pierattoni
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
DettagliIl linguaggio C. Notate che...
Il linguaggio C Notate che... 1 Il C è un linguaggio a blocchi int main (void) { blocco } 2 Il C è un linguaggio a blocchi (2) Non è possibile mischiare dichiarazioni e comandi! int main (void) { } Dichiarazione
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
DettagliIL PRIMO PROGRAMMA IN C
IL PRIMO PROGRAMMA IN C LO SCOPO Si vuole scrivere un programma in linguaggio C che chieda all utente di introdurre da tastiera due numeri interi e visualizzi il valore della loro somma sul video SOLUZIONE
DettagliInformatica 1. Corso di Laurea Triennale in Matematica. Gianluca Rossi
Informatica 1 Corso di Laurea Triennale in Matematica Gianluca Rossi gianluca.rossi@uniroma2.it Dipartimento di Matematica Università di Roma Tor Vergata 11: Stringhe (www.informatica-uno.blogspot.com)
DettagliVariabili e Istruzioni
Exit Menù Variabili e Istruzioni 1 Le Variabili Una VARIABILE è un oggetto identificato da un NOME e da uno STATO, detto CONTENUTO o VALORE. Possiamo immaginarla come una scatola contenuto Pippo 11 nome
DettagliLe funzioni, e le istruzioni di input/output
Linguaggio C Le funzioni, e le istruzioni di input/output 1 Funzioni! Sono sottoprogrammi per svolgere un particolare compito! Sequenze di istruzioni (raggruppate tramite le parentesi graffe) alle quali
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
DettagliLettura da tastiera e scrittura su monitor
Lettura da tastiera e scrittura su monitor Per poter leggere UN SINGOLO CARATTERE dalla tastiera e visualizzare UN SINGOLO CARATTERE sul monitor si possono utilizzare le funzioni: int getchar (void) (per
DettagliFunzioni matlab per la gestione dei file. Informatica B Prof. Morzenti
Funzioni matlab per la gestione dei file Informatica B Prof. Morzenti File Contenitori di informazione permanenti Sono memorizzati su memoria di massa Possono continuare a esistere indipendentemente dalla
DettagliCaratteri e stringhe
Caratteri e stringhe Vettori di caratteri Il tipo stringa Terminatore nullo Input/output di stringhe 2 Vettori di caratteri Stringhe in C Nel linguaggio C non è supportato esplicitamente alcun tipo di
DettagliInformatica 1. Prova di recupero 17 Febbraio 2003
Informatica 1 Prova di recupero 17 Febbraio 2003 Si risolvano i seguenti esercizi. Ai fini della determinazione del voto finale il loro punteggio andrà sommato al punteggio del laboratorio. Il tempo complessivo
DettagliDove die( stringa ) è una funzione di utilità del php che stampa la stringa e fa terminare lo script.
I file in PHP Un file è un archivio elettronico contenente informazioni (dati) memorizzate su memoria di massa. Il file ha la caratteristica di consentire la lettura, la scrittura e la modifica dei dati
DettagliCaratteri e stringhe. Vettori di caratteri. Il tipo stringa Terminatore nullo Input/output di stringhe Politecnico di Torino 1
Caratteri e stringhe Il tipo stringa Terminatore nullo Input/output di stringhe 2 2006 Politecnico di Torino 1 Stringhe in C Nel linguaggio C non è supportato esplicitamente alcun tipo di dato stringa
DettagliMatlab: Gestione avanzata dei file
Matlab: Gestione avanzata dei file Informatica B File 2 Contenitori di informazione permanenti Sono memorizzati su memoria di massa Possono continuare ad esistere indipendentemente dalla vita del programma
DettagliEsercizio 1 Liste: calcolo perimetro di un poligono
Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 12 Esercitazione: 28 gennaio 2005 Esercizi su liste, ricorsione, file. Scaletta Esercizio 1 Liste: calcolo perimetro di
DettagliErrori frequenti Cicli iterativi Array. Cicli e array. Laboratorio di Programmazione I. Corso di Laurea in Informatica A.A.
Cicli e array Laboratorio di Programmazione I Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7 Lez. 8 - Introduzione all ambiente
DettagliDefinizione Allocazione e deallocazione di variabili Allocazione e deallocazione di vettori
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
DettagliVettori di caratteri. Caratteri e stringhe. Stringhe in C. Vettori di caratteri. char saluto[10] ; B u o n g i o r n o 4. Esempio.
Vettori di caratteri Il tipo stringa Terminatore nullo Input/output di stringhe Caratteri e stringhe 2 Stringhe in C Vettori di caratteri Nel linguaggio C non è supportato esplicitamente alcun tipo di
Dettagligiapresente( ) leggi( ) char * strstr(char * cs, char * ct) NULL
Materiale di ausilio utilizzabile durante l appello: tutto il materiale è a disposizione, inclusi libri, lucidi, appunti, esercizi svolti e siti Web ad accesso consentito in Lab06. L utilizzo di meorie
DettagliLinguaggio C: introduzione
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C: introduzione La presente dispensa e da utilizzarsi
DettagliUna testina di lettura/scrittura (ideale) indica in ogni istante il record corrente:
Per poter mantenere disponibili i dati tra le diverse esecuzioni di un programma (persistenza dei dati) è necessario poterli archiviare su memoria di massa! Un file è una astrazione fornita dal sistema
DettagliFile di testo e file binari Directory
File di testo e file binari Directory Dove salvare i file perché vengano ritrovati dal programma? CASO 1 Programma eseguito da ambiente di lavoro (MS Visual C++). La directory in cui viene creato/letto
DettagliLinguaggio C. tipi di dati definiti dall utente. Università degli Studi di Brescia. Docente: Massimiliano Giacomin
Linguaggio C tipi di dati definiti dall utente Università degli Studi di Brescia Docente: Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 Tipi di dati in C Predefiniti
Dettagli2) FILE BINARI: è una sequenza di byte avente una corrispondenza uno a uno con la sequenza ricevuta dal dispositivo esterno.
Tipo File Per memorizzare un dato su un supporto magnetico come un hard disk o un nastro, o più in generale su un'unità di memoria di massa viene utilizzata un tipo di dato chiamato file. Un file può essere
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 08/05/08 Nota Questi lucidi sono tratti
DettagliFunzioni di I/O per numeri. Input e output di valori numerici. Input formattato scanf. Stream preesistenti
Funzioni di I/O per numeri 2 Input e output di valori numerici Ver. 2.4.2 2012 - Claudio Fornaro - Corso di programmazione in C Per utilizzare le funzioni di Input/Output bisogna includere il file di intestazione
DettagliFondamenti di Informatica T. Linguaggio C: i puntatori
Linguaggio C: i puntatori Il puntatore E` un tipo di dato, che consente di rappresentare gli indirizzi delle variabili allocate in memoria. Dominio: Il dominio di una variabile di tipo puntatore è un insieme
DettagliCapitolo 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
DettagliPuntatori. Un puntatore contiene un numero che indica la locazione di memoria dove è presente la variabile puntata
Puntatori int i = 10; int * pi = &i; pi i = 10 116 int * pi = pi contiene un informazione che mi permette di accedere ( puntare ) ad una variabile intera Un puntatore contiene un numero che indica la locazione
DettagliI File. I file vengono distinti in due categorie: ILOHGLWHVWR costituiti da caratteri ed organizzati in linee (ciascuna terminata da \n ) )LOHGLWHVWR
Lezione 10 File: Organizzazione degli archivi Gestione di file in C/C++ Apertura di un File Lettura e Scrittura di file Lettura/scrittura di blocchi File ad accesso diretto I File Il ILOH e l unita logica
DettagliLinguaggio C: le funzioni. Introduzione e sintassi
ISIS "Guido Tassinari" di Pozzuoli Indirizzo Informatico - Articolazione Informatica Informatica Prof. A.S. 2012/2013 Linguaggio C: le funzioni. Introduzione e sintassi 21/10/2012 Introduzione Spesso alcuni
DettagliFondamenti di Informatica T-1, 2009/2010 Modulo 2 Prova d Esame 5 di Giovedì 15 Luglio 2010 tempo a disposizione 2h30'
Prima di cominciare: si scarichi dal sito http://esamix.labx il file StartKit5.zip contenente i file necessari (solution di VS2008 e progetto compresi). Avvertenze per la consegna: apporre all inizio di
DettagliPrimi passi col linguaggio C
Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Come introdurre un linguaggio di programmazione? Obiettivi: Introduciamo una macchina astratta
DettagliEsercizio 1: Puntatori impiegati che sono manager
Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 10 Esercitazione: 25 gennaio 2006 Esercizi di riepilogo Problema: Esercizio 1: Puntatori impiegati che sono manager Si
DettagliRappresentazione binaria delle variabili (int e char)
Rappresentazione binaria delle variabili (int e char) int e char son i due tipi utilizzati dal linguaggio C per la rappresentazione di valori interi; ai valori delle variabili del primo tipo sono assegnati
Dettagli