From 2125ee40a74fad6d9c92f835dda590e35ffae0e5 Mon Sep 17 00:00:00 2001 From: ame Date: Tue, 19 Dec 2023 11:38:32 -0600 Subject: updated some io stuff --- src/io.c | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) (limited to 'src/io.c') diff --git a/src/io.c b/src/io.c index 9b84804..70771b6 100644 --- a/src/io.c +++ b/src/io.c @@ -1,3 +1,4 @@ +#include #include "io.h" #include "stdlib.h" #include "stdio.h" @@ -10,18 +11,25 @@ int l_readfile(lua_State* L){ char* a = (char*)luaL_checklstring(L, 1, &len); FILE *fp; - const uint64_t chunk_iter = 512; - uint64_t chunk = 512; + const uint64_t chunk_iter = _file_malloc_chunk; + uint64_t chunk = chunk_iter; uint64_t count = 0; - char* out = malloc(chunk); - + + if(access(a, F_OK)) { + p_fatal("file not found"); + } + if(access(a, R_OK)){ + p_fatal("missing permissions"); + } + fp = fopen(a, "r"); - + char* out = malloc(chunk); + for(;;){ - char ch = fgetc(fp); + char ch = fgetc(fp); if(ch==EOF) break; - if(count > chunk){ + if(count >= chunk){ chunk += chunk_iter; out = realloc(out, chunk); } -- cgit v1.2.3