rieccomi...utilizzando il programma su windows ci siamo accorti che appena salviamo crasha...abbiamo scoperto che praticamente il file che contiene le query non è stato creato e non ci spieghiamo il perché il codice sembra giusto adesso vi posto le funzioni che creano e leggono dal file:
codice:
FILE* create_tmp_file(const char* path){
FILE* tmp;
tmp=fopen(path,"wb");
return tmp;
}
...
int write_query(const char* query){
FILE* f;
if(file_exists("tmp.sql")){
f=fopen("tmp.sql","ab");
}else{
f=create_tmp_file("tmp.sql");
}
fprintf(f,"%s\n",query);
fclose(f);
return 0;
}
...
void save_tmp_file(const char* path,sqlite3* sql){
FILE* f;
long size;
char* buf;
char* mex=0;
sqlite3_open("DBLocale.db", &sql);
if (!sql)
{
printf("Puntatore a sqlite3 nullo!\n");
return;
}
f=fopen(path,"rb");
if(f==NULL){
perror("file non esiste");
return;
}
fseek(f,0,SEEK_END);/*qui da problemi a quanto pare f è NULL*/
size=ftell(f);
rewind(f);
buf=(char*)malloc(sizeof(char)*(size+1));
fread(buf,1,size,f);
buf[size] = '\0';
//printf("%s",buf);
if(!sqlite3_exec(sql,buf,0,0,&mex)){
printf("%s",mex);
}
fclose(f);
free(buf);
sqlite3_free(mex);
}