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");
}