#include #include #include usz_t rr_get_file_length(const char *path) { FILE *file = fopen(path, "rb"); if(file == NULL) return 0; fseek(file, 0, SEEK_END); usz_t length = ftell(file); fclose(file); return length; } void * rr_load_whole_file(const char *path) { FILE *file = fopen(path, "rb"); if(file == NULL) return NULL; fseek(file, 0, SEEK_END); usz_t length = ftell(file); fseek(file, 0, SEEK_SET); char *data = malloc(length+1); usz_t read_length = fread(data, length, 1, file); if(read_length < length) data = realloc(data, read_length); fclose(file); return data; }