#include "file.h" #include #include Code *read_whole_file(const char *path) { FILE *file = fopen(path, "r"); if (!file) { fprintf(stderr, "could not open file at path '%s'\n", path); return NULL; } fseek(file, 0, SEEK_END); const size_t file_size = ftell(file); fseek(file, 0, SEEK_SET); char *str = a404m_malloc((file_size + 1) * sizeof(char)); fread(str, file_size, 1, file); str[file_size] = '\0'; fclose(file); Code *code = a404m_malloc(sizeof(*code)); size_t pathLen = strlen(path); code->code = str; code->filePath = a404m_malloc((pathLen+1)*sizeof(char)); memcpy(code->filePath, path, pathLen+1); return code; }