aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/main.c b/src/main.c
index f47d308..6682fc5 100644
--- a/src/main.c
+++ b/src/main.c
@@ -10,12 +10,37 @@
* Description: Entrypoint to program
*/
+#include <assert.h>
#include <stdio.h>
#include <string.h>
#include "./inst.h"
#include "./runtime.h"
+void write_bytes_to_file(darr_t *bytes, const char *filepath)
+{
+ FILE *fp = fopen(filepath, "wb");
+ size_t size = fwrite(bytes->data, bytes->used, 1, fp);
+ fclose(fp);
+ assert(size == 1);
+}
+
+void read_bytes_from_file(const char *filepath, darr_t *darr)
+{
+ darr->data = NULL;
+ darr->used = 0;
+ darr->available = 0;
+
+ FILE *fp = fopen(filepath, "rb");
+ fseek(fp, 0, SEEK_END);
+ long size = ftell(fp);
+ darr_init(darr, size);
+ fseek(fp, 0, SEEK_SET);
+ size_t read = fread(darr->data, size, 1, fp);
+ fclose(fp);
+ assert(read == 1);
+}
+
int main(void)
{
byte stack_data[256];