Input/Output su disco
|
|
- Gaspare Montanari
- 5 anni fa
- Visualizzazioni
Transcript
1 Input/Output su disco In C, la gestione dei dispositivi di lettura (tastiera, file su disco,...) e scrittura (monitor, file su disco, stampante,...) viene effettuata mediante canali di comunicazione. Tali canali possono essere sia di input o di output (a seconda che il flusso di informazioni avvenga dal canale verso il codice o dal codice verso il canale) e rappresentano una sorta di interfaccia tra il codice ed il dispositivo fisico cui si vuole accedere dall'interno del codice stesso. In questo modo, le operazioni di accesso ai singoli dispositivi diventano indipendenti dalle caratteristiche tecniche di tali dispositivi; ad esempio, la scrittura su monitor e quella su file vengono effettuate utilizzando lo stesso set di funzioni, permettendo al programmatore di non curarsi di come il processo di scrittura venga effettivamente portato a termine. In generale, prima di poter comunicare con un dispositivo è necessario attivare un canale di comunicazione; nel caso in cui il programma debba accedere alla tastiera o al monitor, non è necessario effettuare tale apertura, in quanto tastiera e monitor rappresentano i canali di input ed output standard, stdin e stdout, e risultano automaticamente aperti all'avvio del programma. L'apertura del canale potrà avvenire in modalità di scrittura o lettura ed il flusso di informazioni potrà essere gestito in modalità testo o binaria.
2 Scrittura su file La scrittura di informazioni all'interno di un documento memorizzato sull'hard-disk del computer è possibile dopo aver attivato il canale di comunicazione con tale documento in modalità scrittura. Nel caso il flusso di informazioni venga gestito in modalità testo, l'invio di informazioni al file avviene per caratteri (non nel senso che si può scrivere solo un carattere per volta, ma nel senso che, una volta inviata un'informazione al file, essa viene salvata sotto forma di un insieme di caratteri). Ad esempio, il valore , una volta salvato su file, diventa una sequenza di caratteri: '1', '2', '3', '.', '4' e '5'. Le funzioni di gestione dell'output permettono di inviare su file dei dati: 1. carattere per carattere, usando la funzione int putc(int c,file*output) che permette di inviare il carattere c al dispositivo cui è collegato il canale output 2. in modalità formattata, usando la funzione in fprintf(file*output, "stringa di formato",...) che permette di inviare l'output sfruttando le medesime potenzialità della funzione printf() 3. una stringa alla volta, usando la funzione char *fputs(char*stringa,file* output) Vediamo tre esempi in cui l'output venga inviato su disco in questi tre diversi modi. /* inizio codice */ #include <stdio.h> #include <stdlib.h> int main() {int i; char *stringa_di_prova="prova di invio dati carattere per carattere"; FILE *output; /* questa è la variabile da utilizzare per l'invio di dati al canale di comunicazione con il file. prima di iniziare la comunicazione con il documento su disco è necessario attivare il canale di comunicazione, specificando il nome del documento e la modalità di accesso al documento stesso */ output = fopen("prova_char_a_char.txt","w"); /* accediamo al dispositivo in scrittura
3 */ if(output ==NULL) /* verifico che il canale sia attivo */ {printf("\n apertura fallita"); exit(0); /* ora è possibile accedere al documento */ i=0; while( *(stringa_di_prova+i) ) /* eseguo il ciclo fino al raggiungimento dell'ultimo char */ {putc( *(stringa_di_prova+i), output ); i++; /* ora inserisco un carattere "a capo" */ putc('\n', output ); /* ora inserisco la stringa al contrario */ i--; while( i >= 0 ) /* eseguo il ciclo fino al raggiungimento del primo char */ {putc( *(stringa_di_prova+i), output ); i--; /* Ora iniziamo le operazioni di scrittura usando la funzione fprintf() */ fprintf(output,"\n iniziano le operazioni di scrittura mediante fprintf()\n"); fprintf(output,"\n valore casuale compreso tra 0 e 999: %d", rand() % 1000); fprintf(output,"\n una stringa: %s\n",stringa_di_prova); /* Ora iniziamo le operazioni di scrittura usando la funzione fputs() */ fputs("\n ora scrivo su file, una stringa per volta\n",output); fputs(stringa_di_prova,output); /* Ora chiudiamo il canale di comunicazione. Se ci dimenticassimo di farlo, esso verrebbe automaticamente chiuso al termine del programma */ fclose(output); return 0; /* fine codice */ Qual è ora il contenuto del file prova_char_a_char.txt? Proviamo ad aprirlo con un qualsiasi editor di testo... Prova di invio dati carattere per carattere erettarac rep erettarac itad oivni id avorp iniziano le operazioni di scrittura mediante fprintf() valore casuale compreso tra 0 e 999: 41 una stringa: Prova di invio dati carattere per carattere ora scrivo su file, una stringa per volta Prova di invio dati carattere per carattere
4 Notate che nel testo non si vedono esplicitamente i caratteri '\n', a capo; se ne nota però l'effetto. Questo indica che, quando un file viene letto in modalità testo, alcuni dei caratteri, i cosiddetti caratteri di controllo, possono essere interpretati e non visualizzati. Lettura da file Le operazioni di input da file possono essere effettuate con le stesse modalità cui cui esse venivano effettuate a partire dal buffer di input standard, ovvero carattere per carattere, a gruppi di caratteri (il separatore tra gruppo e gruppo è rappresentato dal carattere ' ') e stringa per stringa. Per capire quando si sia raggiunta la fine del file, identificata dal carattere EOF, è utile considerare i valori restituiti dalle funzioni di lettura: int fgetc(file*input) restituisce il carattere letto dal canale input o EOF, se incontra la fine del file o se si verifica un errore int fscanf(file*input,"stringa di formato") restituisce un numero pari al numero di caratteri letti o EOF se durante la lettura viene incontrata la fine del file char *fgets(char*stringa,int numero,file* input) la funzione preleva dal canale input un numero di caratteri che al massimo è costituito da numero-1 elementi e li copia nell'area di memoria cui fa riferimento il puntatore stringa. La funzione restituisce il puntatore stringa, se l'operazione di lettura ha successo, ovvero dopo aver copiato numero-1 caratteri, o dopo aver incontrato un carattere "nuova linea" o se durante la lettura incontra EOF. Essa restituisce NULL se si verifica un errore o se tenta di leggere oltre la fine del file. Utilizziamo tali modalità per leggere il contenuto di questo file: prova_di_lettura.txt prima riga seconda riga ora alcuni numeri interi ora alcuni decimali
5 /* inizio codice */ #include <stdio.h> #include <stdlib.h> int main() {int valore; char c; char lettura[100]; float f; FILE *input; /* questa è la variabile da utilizzare per la lettura di dati dal canale di comunicazione con il file. prima di iniziare la comunicazione con il documento su disco è necessario attivare il canale di comunicazione, specificando il nome del documento da leggere e la modalità di accesso al documento stesso */ input = fopen("prova_di_lettura.txt","r"); /* accediamo al dispositivo in lettura*/ if(input ==NULL) /* verifico che il canale sia attivo */ {printf("\n apertura fallita"); exit(0); /* leggiamo il testo del file, carattere per carattere, e visualizziamone il contenuto */ while(1) {c = fgetc(input); if(c==eof) break; /* interrompo il ciclo di lettura */ if(c<31) printf("%d",c); /* se è un carattere di controllo, ne visualizzo il codice ASCII */ else printf("%c",c); /* riavvolgiamo il file e utilizziamo la funzione fscanf() */ rewind(input); while(1) {valore = fscanf(input,"%s",lettura); if(valore == EOF) break; printf("%s",lettura); /* Notate che i caratteri "a capo" non sono stati inseriti nelle stringhe lette. Riavvolgiamo il file e utilizziamo la funzione fscanf() per leggere i numeri e la funzione fgets() per leggere le righe contenenti solo testo */ /* le prime tre righe sono formate da testo */ fgets(lettura,100,input); /* leggo la prima riga */ puts(lettura); fgets(lettura,100,input); /* leggo la seconda riga */ puts(lettura); fgets(lettura,100,input); /* leggo la terza riga */ puts(lettura); /* poi ci sono tre numeri interi */
6 fscanf(input,"%d",&valore); printf(" %d ",valore); fscanf(input,"%d",&valore); printf(" %d ",valore); fscanf(input,"%d",&valore); printf(" %d ",valore); /* poi una riga contenente solo testo */ fgets(lettura,100,input); puts(lettura); /* ed infine due decimali */ fscanf(input,"%f",& f); printf(" %f ",f); fscanf(input,"%f",& f); printf(" %f ",f); fclose(input); return 0; /* fine codice */ Oltre alla possibilità di gestire la comunicazione attraverso il canale in modalità testo, è possibile utilizzare la gestione in modalità binaria, ovvero mediante un flusso di Byte, sia in input che in output. In pratica, usando questa modalità, vengono lette dal disco o scritte su disco le sequenze di Byte che servono per rappresentare il valore di una data variabile. Tale flusso non subisce le interpretazioni cui può andare soggetto un flusso di dati gestito in modalità testo. Un vantaggio derivante dall'utilizzare la gestione binaria del flusso di dati è rappresentato dal risparmio di memoria che essa può comportare. consideriamo le seguenti variabili int a = 4000, b = ;
7 Entrambe sono variabili di tipo intero, quindi occupano 4 Byte in memoria; se copio tali byte su un file, entrambe occuperanno 4 Byte su disco. Se, viceversa, scrivo il valore delle variabili in modalità testo, la prima occuperà 4 Byte sul disco mentre la seconda ne occuperà 9. Come scriviamo / leggiamo Byte per Byte? int fwrite(void *puntatore,int dim,int num,file*output) La funzione invia al canale cui fa riferimento la variabile output la sequenza di Byte relativa ad un numero num di oggetti, ciascuno di dimensione pari a dim; tali byte sono vengono cercati a partire dalla locazione di memoria cui fa riferimento puntatore. Esempio: salviamo i valori di un array su disco. /* inizio codice */ #include <stdio.h> #include <stdlib.h> #define DIM 50 int main() {int *array; int i; FILE *output = fopen("testo.dat","w"); if(output == NULL) exit(0); FILE *bin_output = fopen("binario.dat","wb"); if(bin_output == NULL) exit(0); if((array = (int *) malloc( DIM * sizeof(int))) == NULL) exit(0); /* inizializzo gli elementi */ array[i] = rand() ; /* scrivo i valori in modalità testo usando il canale di testo */ fprintf(output," %d \n",array[i]); fclose(output); /* chiudo il canale di testo */ /* scrivo i valori in modalità binaria, uno dopo l'altro */
8 fwrite(array+i,sizeof(int),1,bin_output); /* scrivo i valori in modalità binaria, tutti in una sola volta */ fwrite(array,sizeof(int),dim,bin_output); /* scrivo l'intero array, in un colpo solo */ fwrite(array,dim*sizeof(int),1,bin_output); fclose(bin_output); return 0; /* fine codice */ Ora nel file binario ci sono tre copie del medesimo array. Leggiamo tali valori in modalità binaria usando la funzione fread(). Se tentiamo di leggere il file binario.dat usando un editor di testo vediamo qualcosa che non ha nulla a che fare con i valori salvati nel file testo.dat int fread(void *puntatore,int dim,int num,file*input) La funzione legge dal canale cui fa riferimento la variabile input la sequenza di Byte relativa ad un insieme di al più num oggetti, ciascuno di dimensione pari a dim; tali byte sono vengono cercati a partire dalla locazione di memoria cui fa riferimento puntatore. /* inizio codice */ #include <stdio.h> #include <stdlib.h> #define DIM 50 int main() {int *array; int i; FILE *bin_input = fopen("binario.dat","rb"); if(bin_input == NULL) exit(0); /* riservo l'area di memoria in cui scrivere i valori che verranno letti in seguito */ if((array = (int *) malloc( DIM * sizeof(int))) == NULL) exit(0); /* leggo i valori, tutti in una volta */
9 fread(array,sizeof(int)*dim,1,bin_input); /* visualizzo i valori */ fprintf(stdout," %d \n",array[i]); /* ora li leggo uno dopo l'altro */ fread(array+i,sizeof(int),1,bin_input); fprintf(stdout," %d \n",array[i]); fclose(bin_input); return 0; /* fine codice */
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
DettagliGestione 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
DettagliI 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
DettagliInput/Output. Lettura e scrittura Caratteri e Stringhe: Terminale e file. Input/output. caratteri stringhe formattato ascii binari
Input/Output Lettura e scrittura Caratteri e Stringhe: Terminale e file Input/output console file caratteri stringhe formattato ascii binari Linguaggio ANSI C Input/Output - 1 La libreria standard del
DettagliGestione 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è
DettagliCorso 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
DettagliI files in C. A cura del prof. Ghezzi
I files in C A cura del prof. Ghezzi 1 Perchè i files? Realizzano la persistenza dei dati dati che sopravvivono all esecuzione del programma Sono delle strutture di dati sequenziali 2 Files e S.O. I files
DettagliLa copia di un file. contare di quanti caratteri sia composto il file (e quindi determinare la dimensione del file di origine)
La copia di un file Nell'esercizio di oggi cerchiamo di implementare un programma che permetta di effettuare la copia di un file di testo. L'operazione di copia, oltre a permettere di creare un nuovo file
DettagliInput/Output su File
Input/Output su File Premessa importante Queste dispense si intendono unicamente come riferimento rapido per consultare il significato e I prototipi delle funzioni per l'accesso ai file. Per avere esempi
DettagliStreams 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
DettagliGestione 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
DettagliFONDAMENTI 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
DettagliFILE BINARI FILE BINARI
FILE BINARI Un file binario è una pura sequenza di byte, senza alcuna strutturazione particolare È un'astrazione di memorizzazione assolutamente generale, usabile per memorizzare su file informazioni di
Dettaglifile 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
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
DettagliPerchè 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
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,
DettagliINFORMATICA. 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
DettagliFile binari e file di testo
I file File binari e file di testo distinzione tra file binari file di testo si possono usare funzioni diverse per la gestione di tipi di file diversi Programmazione Gestione dei file 2 File binari e file
DettagliGestione dei file. Stefano Ferrari. Università degli Studi di Milano Programmazione. anno accademico
Gestione dei file Stefano Ferrari Università degli Studi di Milano stefano.ferrari@unimi.it Programmazione anno accademico 2016 2017 Gli stream Si dice stream qualsiasi sorgente di dati in ingresso e qualsiasi
DettagliIl linguaggio C. Breve panoramica su stdio.h
Il linguaggio C Breve panoramica su stdio.h 1 Input/Output: stdio.h Contiene definizioni di costanti legate all I/O es. EOF (end of file) #define EOF (-1) valore restituito alla fine di un file Contiene
DettagliGESTIONE DEI FILE 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
DettagliJAVA. import java.util.*; #include <stdio.h> public static class test { int variable; private int variable; int main (int argc, char *argv[]) {
JAVA C import javautil*; public static class test { private int variable; public void main (String[] args) { variable = 0; Systemoutprintln( Variable is: + variable); #include int variable; int
DettagliSettimana 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
DettagliInput / Output. Come già detto, input e output sono realizzati in C da funzioni di stdio.h all'interno della libreria standard
Stdio.h Input / Output Come già detto, input e output sono realizzati in C da funzioni di stdio.h all'interno della libreria standard Sia i file che i dispositivi (tastiera, schermo...) sono visti come
DettagliDIPARTIMENTO 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
DettagliDIPARTIMENTO 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
DettagliLezione 22: Input/Output e Files
Lezione 22: Input/Output e Files Vittorio Scarano Laboratorio di Informatica I Corso di Laurea in Informatica Università di Salerno Struttura della lezione Esami: date e modalità Funzioni di libreria standard
DettagliDIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. File. Marco D. Santambrogio Ver. aggiornata al 15 Maggio 2013
File Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 15 Maggio 2013 Obiettivi Alcuni problemi aperti Il main() Allocazione dinamica della memoria Il salvataggio dei dati File File
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
DettagliDIPARTIMENTO 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
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
DettagliFiles 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
DettagliLezione 11: Liste a Puntatori e Input/Output
Lezione 11: Liste a Puntatori e Input/Output Vittorio Scarano Laboratorio di Informatica I Corso di Laurea in Informatica Università degli Studi di Salerno Struttura della lezione Richiamo: strutture (struct)
DettagliInput / Output. Come già detto, input e output sono realizzati in C da funzioni di stdio.h all'interno della libreria standard
Stdio.h Input / Output Come già detto, input e output sono realizzati in C da funzioni di stdio.h all'interno della libreria standard Sia i file che i dispositivi (tastiera, schermo...) sono visti come
DettagliERRATA CORRIGE. void SvuotaBuffer(void); void SvuotaBuffer(void) { if(getchar()!=10) {svuotabuffer();} }
ERRATA CORRIGE Pulizia del buffer di input: come fare? (1) Dopo aver richiamato getchar() per prelevare un carattere dal buffer di input, inseriamo una seconda chiamata a getchar(), senza assegnare il
DettagliELEMENTI 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:
DettagliCosa serve per cominciare?
Cosa serve per cominciare? La linea di comando Il notepad (o equivalente) Saper scrivere qualcosa a video da programma risultato dell elaborazione elaborazione Ma come si fa?! 1 Input / Output L'immissione
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
DettagliDati due punti sul piano calcolare la loro distanza
Introduzione al C Primo esempio in C Dati due punti sul piano calcolare la loro distanza Soluzione: la distanza fra due punti si calcola secondo il teorema di Pitagora, con la formula: y Distanza = (lato12
DettagliOperazioni su file di caratteri
Operazioni su file di caratteri Apertura fopen Chiusura fclose Scrittura fprintf Lettura fscanf Controllo fine file feof Prof. E. Occhiuto INFORMATICA 242AA a.a. 2010/11 pag. 1 Apertura di un file: Si
DettagliGestione dei files in linguaggio C. Fondamenti
Programmazione e Laboratorio di Programmazione Gestione dei files in linguaggio C Fondamenti 1 Che cosa è un file? Un file può essere visto come un contenitore di informazioni simile ad un vettore di bytes
DettagliGestione dei files. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Via Leopardi 132
Gestione dei files Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Via Leopardi 132 Struttura del disco fisso Un disco fisso è composto da una serie di piatti sovrapposti Ogni piatto è
DettagliLe strutture /3. Riprendiamo ora la struttura definita alcune lezioni fa e completiamo il set di funzioni che servono per gestire un elenco di libri.
Le strutture /3 Riprendiamo ora la struttura definita alcune lezioni fa e completiamo il set di funzioni che servono per gestire un elenco di libri. typedef struct {char titolo[200]; char autore[100];
DettagliFILE 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
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:
DettagliCorso 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
DettagliLa 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,
DettagliLaboratorio di Informatica
Record Laboratorio di Informatica Ingegneria Meccanica Lezione 9, 6 dicembre 2007 versione 18 dicembre 2007 Renato Menicocci Array: collezione di dati omogenei
DettagliLezione V Fondamenti di Ingresso/Uscita
Programmazione e Laboratorio di Programmazione Lezione V Fondamenti di Ingresso/Uscita Programmazione e Laboratorio di Programmazione: Fondamenti di Ingresso/Uscita 1 Flussi standard di I/O Standard streams:
DettagliUn file è un astrazione di memorizzazione di dimensione potenzialmente illimitata (ma non infinita), ad accesso sequenziale.
IL CONCETTO DI FILE Un file è una astrazione fornita dal sistema operativo, il cui scopo è consentire la memorizzazione di informazioni su memoria di massa. Concettualmente, un file è una sequenza di registrazioni
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
DettagliEsercitazione di Reti degli elaboratori
Esercitazione di Prof.ssa Chiara Petrioli Christian Cardia, Gabriele Saturni Cosa vedremo in questa lezione? Gli Array Gli array multidimensionali Le stringhe I puntatori Esercizi Pagina 1 Gli Array Definizione
DettagliDispensa 25 CORSO DI PROGRAMMAZIONE A.A CORSO DI LAUREA IN SCIENZE E TECNOLOGIE INFORMATICHE CESENA. Laboratorio
CORSO DI LAUREA IN SCIENZE E TECNOLOGIE INFORMATICHE CESENA CORSO DI PROGRAMMAZIONE A.A. 2016-17 Dispensa 25 Laboratorio Dott. Mirko Ravaioli e-mail: mirko.ravaioli@unibo.it http://www.programmazione.info
DettagliLaboratorio di Informatica Ingegneria Clinica Lezione 30/11/2011
Laboratorio di Informatica Ingegneria Clinica Lezione 30/11/2011 Raffaele Nicolussi FUB - Fondazione Ugo Bordoni Via del Policlinico, 147 00161 Roma I/O in C Il sistema di I/O del C è una interfaccia uniforme
DettagliSistemi Operativi (M. Cesati)
Sistemi Operativi (M. Cesati) Compito scritto del 17 febbraio 2014 Nome: Matricola: Corso di laurea: Cognome: Crediti da conseguire: 5 6 9 Scrivere i dati richiesti in stampatello. Al termine consegnare
DettagliGESTIONE DEI FILE IN C
GESTIONE DEI FILE IN C Il concetto di file.. è una parte logicamente contigua del contenuto di un dispositivo! Deve essere capace di memorizzare grandi quantità di dati! I dati memorizzati devono sopravvivere
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
DettagliFile. 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! I file di testo non sono indispensabili: sono semplicemente comodi 1
Un file binario è una pura sequenza di byte, senza alcuna strutturazione particolare! È un'astrazione di memorizzazione assolu -tamente generale, usabile per memorizza -re su file informazioni di qualsiasi
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
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
DettagliGESTIONE 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
DettagliI puntatori. Il C ci permette di conoscere tale indirizzo, ovvero di determinare dove la variabile sia stata effettivamente memorizzata.
I puntatori La memoria RAM del calcolatore è formata da un insieme di celle di memoria; per poter localizzare ciascuna cella, ad ognuna di esse è associato un numero, ovvero il suo indirizzo, che viene
DettagliStrutture dati. Operatori di incremento e decremento. Strutture di dati. Strutture di dati. ++ e -- Esempi. Vettori e matrici.
Operatori di incremento e decremento ++ e -- Esempi y=x++ il contenuto della variabile x viene inizialmente usata per l assegnazione y, e solo dopo incrementata y=--x il contenuto della variabile x viene
DettagliInput / Output. Come già detto, input e output sono realizzati in C da funzioni di stdio.h all'interno della libreria standard
Stdio.h Input / Output Come già detto, input e output sono realizzati in C da funzioni di stdio.h all'interno della libreria standard Sia i file che i dispositivi (tastiera, schermo...) sono visti come
DettagliEsercitazioni Fondamenti di Informatica
Esercitazioni Fondamenti di Informatica Marco Biagi Esercitazione 10 Email: marco.biagi@unifi.it Stringhe in C Una stringa è una sequenza di caratteri con un ordine prestabilito char c = p ; char stringa[]
DettagliI file possono essere manipolati (aperti, letti, scritti ) all interno di programmi C. dischi nastri cd
Per poter mantenere disponibili i dati tra le diverse esecuzioni di un programma (persistenza dei dati) è necessario poterli archiviare su memoria di massa. dischi nastri cd GESTIONE DEI FILE I file possono
Dettaglipuntatori Lab. Calc. AA 2006/07 1
puntatori Lab. Calc. AA 2006/07 1 Attributi di un oggetto nome o identificatore; tipo; valore (o valori); indirizzo; Lab. Calc. AA 2006/07 2 Indirizzo Consideriamo la dichiarazione con inizializzazione:
DettagliFile e puntatori a file
File e puntatori a file Vitoantonio Bevilacqua vitoantonio.bevilacqua@poliba.it La libreria stdio.h mette a disposizione delle funzioni che hanno la peculiarità di trattare con questa nuova tipologia di
DettagliINPUT E OUTPUT DI VALORI NUMERICI
INPUT E OUTPUT DI VALORI NUMERICI FUNZIONI DI I/O PER NUMERI Per utilizzare le funzioni di Input/Output bisogna includere il file di intestazione (header file) denominato contiene la
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
DettagliPuntatori. Grazie ai puntatori:
Puntatori Grazie ai puntatori: 1) è possibile permettere ad una funzione di modificare il contenuto di un area di memoria; 2) invece di passare ad una funzione tutto un blocco di memoria, si passa alla
DettagliSistemi Operativi (M. Cesati)
Sistemi Operativi (M. Cesati) Compito scritto del 1 febbraio 2016 Nome: Matricola: Corso di laurea: Cognome: Crediti da conseguire: 5 6 9 Scrivere i dati richiesti in stampatello. Al termine consegnare
DettagliPremessa. Input /output e gestione dei file. I file e gli stream. Il puntatore al file. 21. I FILE NEL LINGUAGGIO C Versione 1.
Input /output e gestione dei file Premessa Iniziamo la lezione dicendo subito che per INPUT/OUTPUT si intende l insieme delle operazioni di ingresso ed uscita, ossia lo scambio di informazioni tra il programma
DettagliIndice. La gestione dei file in C e gli stream. Apertura e chiusura di un file. Operazioni sui file. Accesso sequenziale e non sequenziale
File in C Indice La gestione dei file in C e gli stream Apertura e chiusura di un file Operazioni sui file Accesso sequenziale e non sequenziale Gestione dei file in C In C all interno della standard library
DettagliInput/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,
DettagliFile qualche nota riassuntiva Che cos è un file? È un astrazione fornita dal sistema operativo, per consentire la memorizzazione di informazioni su
File qualche nota riassuntiva Che cos è un file? È un astrazione fornita dal sistema operativo, per consentire la memorizzazione di informazioni su memoria di massa È un astrazione di memorizzazione di
DettagliI puntatori sono tipi di variabili il cui valore rappresenta un indirizzo della memoria.
Puntatori I puntatori sono tipi di variabili il cui valore rappresenta un indirizzo della memoria. NOTA: quando un programma viene mandato in esecuzione, ad esso viene assegnata un area di memoria di lavoro
DettagliInformatica 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
DettagliSistemi Operativi (M. Cesati)
Sistemi Operativi (M. Cesati) Compito scritto del 9 luglio 2012 Nome: Matricola: Corso di laurea: Cognome: Crediti da conseguire: 5 6 9 Scrivere i dati richiesti in stampatello. Al termine consegnare tutti
DettagliLaboratorio di informatica Ingegneria meccanica
Laboratorio di informatica Ingegneria meccanica Esercitazione 6 7 novembre 2007 Correzione di un programma Un programma può contenere errori sintattici e/o errori logici. Gli errori sintattici vengono
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
Dettagli- matrici - stringhe - file (lettura/scrittura, di testo/binari) - strutture, puntatori - allocazione dinamica della memoria (malloc)
Esercitazione Argomenti che verranno trattati in questa esercitazione: - matrici - stringhe - file (lettura/scrittura, di testo/binari) - strutture, puntatori - allocazione dinamica della memoria (malloc)
DettagliIndice. La gestione dei file in C e gli stream. Apertura e chiusura di un file. Operazioni sui file. Accesso sequenziale e non sequenziale
File in C Indice La gestione dei file in C e gli stream Apertura e chiusura di un file Operazioni sui file Accesso sequenziale e non sequenziale La gestione del buffer Gestione dei file in C In C all interno
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 puntatori /2. Ad esempio. // inizio codice. #include <stdio.h> void mostra(int); int main() {int a = 10; mostra(a); return 0;}
I puntatori /2 In C, il passaggio dei parametri alle funzioni avviene sempre per copia, ovvero il valore del parametro viene copiato all'interno della variabile che rappresenta il parametro stesso nel
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
DettagliFile. Unità 8. Corso di Laboratorio di Informatica Ingegneria Clinica BCLR. Domenico Daniele Bloisi
Corso di Ingegneria Clinica BCLR Domenico Daniele Bloisi Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento di Ingegneria Informatica, Automatica e Gestionale Antonio Ruberti Via Ariosto
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
DettagliCostruiamo un programma per crittografare del testo
Costruiamo un programma per crittografare del testo Per codificare un messaggio in modo tale che il suo testo non risulti leggibile a persone che non siano in possesso dell'opportuna procedura di decodifica,
DettagliLe strutture. Una struttura C è una collezione di variabili di uno o più tipi, raggruppate sotto un nome comune.
Le strutture Una struttura C è una collezione di variabili di uno o più tipi, raggruppate sotto un nome comune. Dichiarazione di una struttura: struct point { int x; int y; }; La dichiarazione di una struttura
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)
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)
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
DettagliIl buffer di input. In questo modo, tutte le chiamate alla funzione permetteranno all'utente di inserire caratteri.
Il buffer di input In C, l'input fornito dall'utente viene gestito mediante un buffer; nel buffer vengono inseriti i caratteri premuti dall'utente sulla tastiera e, a chiusura del buffer, viene aggiunto
DettagliLe librerie standard. ! La libreria standard del C è in realtà un insieme di librerie
! La libreria standard del C è in realtà un insieme di librerie! Per usare una libreria, non occorre inse -rirla esplicitamente nel progetto: ogni ambiente di sviluppo sa già dove cercarle! Ogni file sorgente
DettagliGestione 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