From 7832bc32b4933696e7a34b180bbba46b0c98b858 Mon Sep 17 00:00:00 2001 From: ame Date: Mon, 4 Dec 2023 01:04:57 -0600 Subject: crypto stuff and (some) file io --- src/io.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 src/io.c (limited to 'src/io.c') diff --git a/src/io.c b/src/io.c new file mode 100644 index 0000000..f2a5c82 --- /dev/null +++ b/src/io.c @@ -0,0 +1,35 @@ +#include "io.h" +#include "stdlib.h" +#include "stdio.h" +#include "string.h" +#include "stdint.h" +#include "unistd.h" + +int l_readfile(lua_State* L){ + size_t len; + char* a = (char*)luaL_checklstring(L, 1, &len); + + FILE *fp; + const uint64_t chunk_iter = 512; + uint64_t chunk = 512; + uint64_t count = 0; + char* out = malloc(chunk); + + fp = fopen(a, "r"); + + for(;;){ + char ch = fgetc(fp); + if(ch==EOF) break; + + if(count > chunk){ + chunk += chunk_iter; + out = realloc(out, chunk); + } + out[count] = ch; + count++; + } + lua_pushstring(L, out); + + free(out); + return 1; +}; -- cgit v1.2.3