Ciao a tutti, ho scritto il seguente frammento di programma che tra le varie cose deve leggere i primi 10 caratteri del file testo.txt, ma quando effettua la chiamata a fgets restituisce un puntatore a null segno che non viene letto alcun carattere, avete qualche suggerimento su quale sia il problema ? Vi posto il codice, Grazie

codice:
#include <unistd.h>
#include <stdio.h>
#include <dirent.h>
#include <sys/types.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
	char *ptr;
	char *prova;
	DIR *dp;
	struct dirent *dirp;
	struct dirent1 *dirp1;
	int size;
	char directory[526];
	char *stringa;
	char *nomefile=(char *)malloc(1000*sizeof(char));;
	char nomefile1[526]="/testo.txt";

	while(strcmp(directory,"/")!=0){
	
	getcwd(directory, sizeof(directory));
	printf("%s\n", directory);	
	ptr = chdir("..");
		
		if ( (dp = opendir(directory)) == NULL){
		printf("can't open %s", argv[1]);
		exit(-1);
		}
		while ( (dirp = readdir(dp)) != NULL){
			if(strcmp(dirp->d_name,"testo.txt")==0){
				printf("File trovato\n");
				printf("File %s\n", dirp->d_name);
				nomefile=strcat(directory,nomefile1);				
				FILE *prova;
                       		prova=fopen(nomefile,"r");	
				if (prova==NULL){
					printf("non posso aprire il file");
					exit(1);
					}
				
				stringa=(char *)malloc(100*sizeof(char));
				char *st = (char *)malloc(100*sizeof(char));
				st=fgets(stringa,10,prova);	
				printf("%s\n",stringa);
      				exit(0);
			}
		
		
		
		}
	
	}
printf("File non trovato\n");
}