libri-javascript-python

In questa lezione studieremo come gestire i file in C, parleremo dei file di testo e dei file binari e anche del tipo di accesso ad un file.

Definizione di file

Un file è dunque un insieme di dati (record logici), organizzati in maniera ordinata e memorizzati sulla memoria di massa. La gestione dei file, come ben sappiamo, è compito del sistema operativo.

Innanzitutto diciamo che ci sono due categorie di file: di testo e binari.

I file di testo sono formati da una sequenza di caratteri organizzati in linee, ciascuna terminante con il carattere \n.

Invece i file binari sono costituiti da una sequenza di byte e producono un risultato non direttamente comprensibile per l’uomo.

Difatti se facessimo la prova ad aprire un file binario, ad esempio con il blocco note, non ne potremmo interpretare il contenuto.

Accesso ai file in C

L’accesso ai file può avvenire con due diverse modalità: sequenziale oppure diretto.

Con l’accesso sequenziale, così come si può intuire dal nome, si raggiunge un elemento scorrendo tutti quelli precedenti.

Invece, l’accesso casuale (random) permette di raggiungere un elemento desiderato direttamente.

Il linguaggio C crea un livello intermedio tra il programma e il file che prende il nome di stream. Quindi nello stream si memorizzano le informazioni da gestire.

Dunque il programma non si rapporta direttamente con il file ma con il livello stream, che pertanto ha il compito di filtrare le istruzioni.

Puntatore a FILE

Per accedere ad un file occorre utilizzare un puntatore a FILE, cioè un indirizzo di memoria o locazione iniziale del file a cui si vuole accedere. FILE è un tipo definito nell’header stdio.h e dunque attenzione dovete scriverlo sempre in maiuscolo.

La sintassi è: FILE *fp

Dove fp è la variabile di tipo puntatore.

In questa lezione abbiamo dato delle semplici definizioni, vedremo nella prossima lezione le funzioni per la gestione dei file in C.

Alcuni link utili

Indice argomenti linguaggio C

La funzione fclose

Allocazione dinamica della memoria con malloc

Strutture in C

Strutture complesse in C

Come sommare gli elementi della cornice esterna

Come sommare due matrici

Matrice trasposta

Prodotto tra matrici

Tavola pitagorica in C

Array multidimensionali

Insertion Sort in C