#include "arc/std/io.h" #include "arc/std/errno.h" #include "arc/std/string.h" #include #include void ARC_IO_FileToStr(ARC_String *path, ARC_String **data){ FILE *file = fopen(path->data, "rb"); if(!file){ return; arc_errno = ARC_ERRNO_NULL; } fseek(file, 0L, SEEK_END); uint64_t length = ftell(file); rewind(file); char *fileData = (char *) calloc(1, length + 1); if(fileData == NULL){ fclose(file); arc_errno = ARC_ERRNO_NULL; *data = NULL; return; } if(1 != fread(fileData, length, 1, file)){ fclose(file); arc_errno = ARC_ERRNO_COPY; *data = NULL; return; } fclose(file); ARC_String_Create(data, fileData, length); }