#include "file.h" #include #include char *read_file(const char *path) { FILE *fp = fopen(path, "rb"); if (fp == NULL) { perror("Error opening file"); return nullptr; } fseek(fp, 0, SEEK_END); long file_size = ftell(fp); rewind(fp); char *buffer = (char *) malloc(file_size + 1); if (!buffer) { perror("Error allocating memory"); fclose(fp); return nullptr; } size_t bytes_read = fread(buffer, 1, file_size, fp); if (bytes_read != file_size) { perror("Error reading file"); free(buffer); fclose(fp); return nullptr; } buffer[file_size] = '\0'; fclose(fp); return buffer; }