aboutsummaryrefslogtreecommitdiff
path: root/asm/base.cpp
diff options
context:
space:
mode:
authorAryadev Chavali <aryadev@aryadevchavali.com>2024-04-15 04:53:42 +0630
committerAryadev Chavali <aryadev@aryadevchavali.com>2024-04-15 04:55:51 +0630
commitf661438c93806e42cfbbbd39d79c77924a4a5a16 (patch)
treef6fcbc9542822528b83f7e16b41cc58fe9ea9bfc /asm/base.cpp
parent0385d4bb8dafe6c4968fcc83888b5dd3e18e861f (diff)
downloadovm-f661438c93806e42cfbbbd39d79c77924a4a5a16.tar.gz
ovm-f661438c93806e42cfbbbd39d79c77924a4a5a16.tar.bz2
ovm-f661438c93806e42cfbbbd39d79c77924a4a5a16.zip
Moved read_file to a general base library
Diffstat (limited to 'asm/base.cpp')
-rw-r--r--asm/base.cpp32
1 files changed, 32 insertions, 0 deletions
diff --git a/asm/base.cpp b/asm/base.cpp
new file mode 100644
index 0000000..d2812f1
--- /dev/null
+++ b/asm/base.cpp
@@ -0,0 +1,32 @@
+/* Copyright (C) 2024 Aryadev Chavali
+
+ * You may distribute and modify this code under the terms of the GPLv2
+ * license. You should have received a copy of the GPLv2 license with
+ * this file. If not, please write to: aryadev@aryadevchavali.com.
+
+ * Created: 2024-04-14
+ * Author: Aryadev Chavali
+ * Description:
+ */
+
+#include "./base.hpp"
+
+#include <cstdio>
+
+std::optional<std::string> read_file(const char *filename)
+{
+ FILE *fp = fopen(filename, "rb");
+ if (fp)
+ {
+ std::string contents;
+ fseek(fp, 0, SEEK_END);
+ contents.resize(ftell(fp));
+ rewind(fp);
+ fread(&contents[0], 1, contents.size(), fp);
+ fclose(fp);
+
+ return contents;
+ }
+ else
+ return std::nullopt;
+}