From e1e1cfc821970f7ac4b2d26f2105c2db91bb930c Mon Sep 17 00:00:00 2001 From: Benjamyn Love Date: Tue, 5 Dec 2023 11:48:25 +1100 Subject: [PATCH] Added filereader lib --- libs/fileLoader.c | 20 +++++++++++++++++--- libs/fileLoader.h | 1 + test.c | 10 ++++++++++ 3 files changed, 28 insertions(+), 3 deletions(-) create mode 100644 test.c diff --git a/libs/fileLoader.c b/libs/fileLoader.c index acaf829..c7db30e 100644 --- a/libs/fileLoader.c +++ b/libs/fileLoader.c @@ -9,7 +9,14 @@ #include #include "fileLoader.h" -char *load_file_to_mem(char *filename) { +struct OpenFile +{ + char *fileData; + int fileSize; +}; + +struct OpenFile load_file_to_mem(char *filename) { + struct OpenFile file; int fd = open(filename, O_RDONLY); if (fd < 0) { @@ -29,9 +36,16 @@ char *load_file_to_mem(char *filename) { printf("Mapping failed"); exit(3); } - + file.fileSize = statbuf.st_size; + file.fileData = malloc(file.fileSize); + memcpy(file.fileData, filecontents, file.fileSize); - return filecontents; + if (err != 0) { + printf("Unmapping failed"); + exit(1); + } + + return file; } int unmap_file(char *ptr, char *filename) { diff --git a/libs/fileLoader.h b/libs/fileLoader.h index 8eba000..b11a5a7 100644 --- a/libs/fileLoader.h +++ b/libs/fileLoader.h @@ -1,5 +1,6 @@ #ifndef HEADER_FILE #define HEADER_FILE +struct OpenFile; char *load_file_to_mem(char *filename); int unmap_file(char *ptr, char *filename); #endif diff --git a/test.c b/test.c new file mode 100644 index 0000000..3c20c68 --- /dev/null +++ b/test.c @@ -0,0 +1,10 @@ +#include "libs/fileLoader.h" +#include +#include + +int main(int argc, char *argv[]) +{ + char *file = load_file_to_mem("test.c"); + printf("File contents is\n\n%s", file); + return 0; +}