104 lines
4.9 KiB
Plaintext
104 lines
4.9 KiB
Plaintext
ARRAY:
|
||
- Struttura omogenea (contiene elementi dello stesso tipo) e finita (ha una dimensione definita)
|
||
|
||
STRUCT:
|
||
- Struttura non omogenea (può contenere elementi di tipi diversi) e finita (ha una dimensione definita)
|
||
|
||
FILE:
|
||
- Struttura omogenea (inteso come una sequenza di byte o strutture dello stesso tipo) e (virtualmente) infinita (la dimensione può crescere nel tempo fino ai limiti del file)
|
||
|
||
|
||
|
||
File di Testo:
|
||
- Contengono sequenze di caratteri (stringhe)
|
||
- Sono facilmente leggibili (contengono lettere, numeri e segni di punteggiatura)
|
||
- Possono essere letti e modificati facilmente con un editor
|
||
- Occupano molto spazio su disco
|
||
- Possono essere di tipo .html, .xml, .xsl, .txt, etc.
|
||
|
||
File Binari:
|
||
- Contengono sequenze di byte o di strutture
|
||
- Non è possibile saltare in una posizione specifica (vengono quindi lette tutte le righe del file)
|
||
- Non sono leggibili direttamente dall’uomo
|
||
- Possono essere di tipo .doc, .xls, .ppt, .bin, .dat, .exe, etc.
|
||
|
||
File BMP
|
||
- Sono File Binari che memorizzano immagini raster
|
||
- Contengono una testata con le informazioni sull’immagine (dimensioni, profondità di colore, etc.)
|
||
- I dati dell’immagine descrivono ogni pixel (posizione e colore)
|
||
- Occupano molto spazio su disco non essendo compressi (o comunque vengono compressi in modo semplice)
|
||
- Vengono utilizzati per immagini ad alta qualità e fedeltà visiva
|
||
- L’estensione tipica è .bmp
|
||
|
||
La testa dei File BMP è composta da:
|
||
- BITMAPFILEHEADER
|
||
o È la prima struttura del File BMP
|
||
o Contiene informazioni generali come il tipo del file (char bfType[2]), la dimensione totale del file (int bfSize), l’offset dove iniziano i dati dell’immagine (pixel) (int bfOffBits), e contiene anche due byte riservati, ovvero che sono nulli (int bfReserved)
|
||
- BITMAPINFOHEADER
|
||
o Viene subito dopo la prima testata
|
||
o Specifica i dettagli come la larghezza e l’altezza dell’immagine, il numero di bit per pixel, il metodo di compressione, la dimensione dei dati dell’immagine, la risoluzione e la palette dei colori usata dall’immagine
|
||
|
||
|
||
|
||
FILE * fopen(const char * filename, char * mode);
|
||
filename: nome del file
|
||
mode: r (sola lettura del file; il file deve esistere)
|
||
w (sola scrittura del file; se il file non esiste lo crea, se esiste lo svuota)
|
||
a (scrive nel file a partire dalla fine; se il file non esiste lo crea)
|
||
r+ (legge/aggiorna il file; posso aprire il file in lettura, e nel caso modificarlo)
|
||
w+ (scrive/aggiorna il file; se il file esiste non lo svuota)
|
||
a+ (scrive a partire dalla fine/aggiorna il file)
|
||
|
||
mode può concludersi specificando il tipo di file su cui si sta lavorando:
|
||
- t (text): specifica che il file su cui si sta lavorando è un File di Testo (se non viene specificato è di default)
|
||
- b (binary): specifica che il file su cui si sta lavorando è un File Binario
|
||
|
||
int fclose(FILE * file);
|
||
- Non si può fare la fclose() di un puntatore nullo (restituisce 0 oppure -1 se in errore)
|
||
|
||
int fputc(char ch, FILE * fp);
|
||
- Scrittura del carattere chr su fp (file di testo)
|
||
|
||
char * fgets(char * str, int size, FILE * fp);
|
||
- Lettura di una stringa str da fp (file di testo)
|
||
|
||
int fputs(char * str, FILE * fp);
|
||
- Scrittura di una stringa str su fp (file di testo)
|
||
|
||
int fscanf(FILE * fp, const char * format, ...);
|
||
- Lettura formattata da fp (file di testo), restituisce il numero di elementi letti
|
||
|
||
int fprintf(FILE * fp, const char * format, ...);
|
||
- Scrittura formattata su fp (file di testo), restituisce il numero di elementi scritti
|
||
|
||
void rewind(FILE * fp);
|
||
- Riposizionamento all'inizio (azzeramento posizione testina di lettura/scrittura), ignorata in caso di file aperto
|
||
|
||
int fflush(FILE * fp);
|
||
- Forza la scrittura dei dati bufferizzati sullo stream. Se fp vale NULL, forza tutti i buffer aperti in scrittura. Restituisce 0/EOF (ma normalmente non si chiama mai)
|
||
|
||
int rename(char * old, char * new);
|
||
- Rinomina un file
|
||
|
||
int remove(char * filename);
|
||
- Cancella il file filename (restituisce 0 se l'operazione è riuscita)
|
||
|
||
void perror(char * str);
|
||
- Stampa il messaggio con la descrizione dell'errore dell'ultimo errore che c'è stato
|
||
|
||
size_t fread(void * ptr, size_t size, size_t count, FILE * fp);
|
||
- Leggi su un File Binario
|
||
|
||
size_t fwrite(const void * ptr, size_t size, size_t count, FILE * fp);
|
||
- Scrive su un File Binario
|
||
|
||
int fseek(FILE * fp, long offset, int origin);
|
||
origin:
|
||
o SEEK_SET (sposta la posizione del puntatore all’inizio del file)
|
||
o SEEK_CUR (sposta la posizione del puntatore alla posizione corrente)
|
||
o SEEK_END (sposta la posizione del puntatore alla fine del file)
|
||
offset è il numero di byte da spostare rispetto a origin
|
||
|
||
long ftell(FILE * fp);
|
||
- Restituisce la posizione corrente del puntatore di lettura/scrittura in un file. Può essere usata per determinare la dimensione del file o per verificare la posizione nel file durante la lettura/scrittura.
|