libri-javascript-python

La funzione ftell in C consente di restituire la posizione corrente del file pointer rispetto all’inizio del file. La posizione corrente è espressa come numero di byte.

La sintassi della funzione ftell in C è dunque la seguente:

long ftell(FILE *fp)

La funzione ftell in C restituisce dunque un intero che è la posizione corrente del puntatore.

FILE *fp è, come nelle altre funzioni, il puntatore a FILE ottenuto dalla precedente chiamata fopen.


Esempio funzione ftell in C

Facciamo adesso un semplice esempio di programma che visualizza la dimensione di un file utilizzando le funzioni fseek ed ftell.

Supponiamo quindi di avere un file di testo di nome alunni.txt che contiene i nomi di alcuni alunni.

Quindi apriamo il file alunni.txt in lettura, con la funzione fopen, e calcoliamo semplicemente la dimensione di questo file utilizzando fseek per spostare il puntatore alla fine del file ed ftell per restituire la dimensione in byte del nostro file.

Ecco dunque il listato dell’esempio con l’uso di ftell in C:

#include <stdio.h>
#include <stdlib.h>
#define N 5

int main() {
	FILE *fp;
	long n;
	
	if((fp=fopen("alunni.txt", "rt"))==NULL) {
		printf("Errore nell'apertura del file'");
		exit(1);
	}
	
	fseek(fp,0L,SEEK_END);
	n=ftell(fp);

	fclose(fp);
	
	printf("Dimensione del file in byte: %ld\n", n);
	
return 0;
	
}

Sono svariati i casi in cui si può utilizzare la funzione ftell in C, infatti si potrebbe ad esempio voler conoscere la posizione di un valore massimo o di un determinato valore a seguito di una ricerca e così via. Nei tutorial che seguiranno vedremo ancora altri esempi d’uso.

Alcuni link utili

Indice argomenti linguaggio C

La funzione fopen

La funzione fclose

Funzione fprintf

Funzione fscanf

Allocazione dinamica della memoria con malloc

Strutture in C

Typedef struct in C

Esercitazione sulle struct in C

Realizzare un menù di scelta in C

Strutture complesse in C

Come sommare gli elementi della cornice esterna

Come sommare due matrici

Matrice trasposta

Prodotto tra matrici

Ricerca elementi in una matrice

Tavola pitagorica in C

Array multidimensionali

Quick sort in C

Selection sort in C

Merge sort in C

Insertion Sort in C