diff options
Diffstat (limited to 'src/utils/file.c')
-rw-r--r-- | src/utils/file.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/utils/file.c b/src/utils/file.c new file mode 100644 index 0000000..410c218 --- /dev/null +++ b/src/utils/file.c @@ -0,0 +1,22 @@ +#include "file.h" +#include <stdio.h> +#include <utils/memory/memory.h> + +char *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); + return str; +} |