Si scusami, in realtà è cosi,ho sbagliato a riscrivere.. sulla lettura comunque non mi da problemi, perchè ho fatto anche una stampa di prova ed è tutto ok..

codice:
void leggi(char *f, struct string *testa)
{
	FILE *file;
	char str[10];
		
	printf("apertura file\n");
	
	if((file=fopen(f, "w+")) == NULL)
	{
		fprintf(stderr, "Errore nell'apertura del file\n");
		exit(EXIT_FAILURE);
	}
	
	printf("lettura..\n");
	
	while(!feof(file)) 
	{	
    	if(fgets(str, 10, file)) 
        printf("STRINGA LETTA:%s\n", str);
        controlla(str,testa);
  	}

}