01: // fseek() ftell() e rewind()
02: #include<stdio.h>
03: #include<stdlib.h>
04:
05: #include<ctype.h>
06:
07: #define SIZE (200)
08:
09: int main(int argc, char **argv){
10:
11: FILE *bf;
12:
13: bf=fopen("files/test.gif", "rb");
14: if(!bf)
15: {
16: perror("Errore");
17: exit(1);
18: }
19:
20: // il formato GIF contiene nei primi 6 bytes i codici ASCII di "GIF89a", li devo saltare
21:
22: // ricavo la posizione attuale (qui sono ad inizio file per cui e' ovvio che sia "0")
23: long position = ftell(bf);
24: printf("Nel file sono alla posizione %ld\n", position);
25: fseek(bf, 6, SEEK_SET); // SEEK_SET indica che l'offset è relativo all'inizio del file, altri valori possono essere SEEK_END o SEEK_CUR
26:
27: position = ftell(bf);
28: printf("Dopo la fseek() sono alla posizione %ld\n", position);
29:
30: short w, h;
31: fread(&w, sizeof(short), 1, bf); // leggo un singolo short (2 byte)
32: fread(&h, sizeof(short), 1, bf); // leggo un singolo short (2 byte)
33:
34: printf("L'immagine GIF ha dimensioni %dx%d\n", w, h);
35:
36: position = ftell(bf);
37: printf("Dopo aver letto due short sono alla posizione %ld\n", position);
38:
39: rewind(bf);
40: position = ftell(bf);
41: printf("Dopo la rewind() sono alla posizione %ld\n", position);
42:
43: fseek(bf, 0, SEEK_END); // mi sposto esattamente alla fine del file
44: position = ftell(bf);
45: printf("Alla fine del file sono alla posizione %ld\n", position);
46:
47:
48: fclose(bf);
49:
50: return 0;
51: }
52:
53:
Se avete commenti o osservaƶioni su questa pagina
mandate un messaggio di posta elettronica a bertoƶƶi@ce.unipr.it
mandate un messaggio di posta elettronica a bertoƶƶi@ce.unipr.it