Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
static void * load( void * arg, const char * path, int * len )
{
//printf( "load ( %p, %s, %p )\n", arg, path, len );
char * ret = NULL;
*len = 0;
FILE * fp = fopen( path, "r" );
if( NULL != fp ) {
struct stat filestat;
if( 0 == stat( path, &filestat ) ) {
*len = filestat.st_size;
ret = (char*)sqlite3_malloc( filestat.st_size + 1 ); // <---!!!!! Смотрим сюда
fread( ret, filestat.st_size, 1, fp ); // <-- потом сюда
ret[ filestat.st_size ] = '\0';
} else {
printf( "cannot stat file %s\n", path );
}
fclose( fp );
} else {
printf( "cannot open file %s\n", path );
}
return ret; // <--- и в итоге
}
SQLite — замечательная встраиваемая БД (часть 2)