From cf36cda36f8e91290f1d765f24c7933d4fadd837 Mon Sep 17 00:00:00 2001 From: bpc2003 Date: Thu, 6 Mar 2025 14:48:55 -0500 Subject: Got started on readfile --- src/fileops.c | 28 ++++++++++++++++++++++++++++ src/include/fileops.h | 6 ++++++ src/main.c | 24 ++++++++++++++++++++++++ 3 files changed, 58 insertions(+) create mode 100644 src/fileops.c create mode 100644 src/include/fileops.h create mode 100644 src/main.c diff --git a/src/fileops.c b/src/fileops.c new file mode 100644 index 0000000..ca5171d --- /dev/null +++ b/src/fileops.c @@ -0,0 +1,28 @@ +#include +#include +#include +#include + +#include "include/fileops.h" + +uint8_t *readdb(char *filename) +{ + FILE *fp = fopen(filename, "rb"); + if (fp == NULL) + return NULL; + + int len = 10; + uint8_t *buf = calloc(len, sizeof(uint8_t)); + int c, i = 0; + while ((c = fgetc(fp)) != EOF) { + if (i >= len) { + len *= 2; + buf = realloc(buf, len * sizeof(uint8_t)); + memset(buf + i, 0, (len - i) * sizeof(uint8_t)); + } + buf[i++] = c; + } + + fclose(fp); + return buf; +} diff --git a/src/include/fileops.h b/src/include/fileops.h new file mode 100644 index 0000000..2354913 --- /dev/null +++ b/src/include/fileops.h @@ -0,0 +1,6 @@ +#ifndef FILEOPS_H +#define FILEOPS_H + +unsigned char *readdb(char *filename); + +#endif diff --git a/src/main.c b/src/main.c new file mode 100644 index 0000000..8e4bab4 --- /dev/null +++ b/src/main.c @@ -0,0 +1,24 @@ +#include +#include +#include + +#include "include/fileops.h" + +int main(int argc, char **argv) +{ + if (argc != 2) + exit(1); + char *filename = argv[1]; + + uint8_t *buf = readdb(filename); + if (buf == NULL) + exit(0); + + printf("[ "); + for (int i = 0; buf[i]; ++i) { + printf("%d ", buf[i]); + } + printf("]\n"); + free(buf); + exit(0); +} -- cgit v1.2.3