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