From 3f68a5ea045f3a097768c681ecf60989ca296ec1 Mon Sep 17 00:00:00 2001 From: pryazha Date: Wed, 9 Jul 2025 15:37:44 +0500 Subject: organized examples --- example/sys.c | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 example/sys.c (limited to 'example/sys.c') diff --git a/example/sys.c b/example/sys.c new file mode 100644 index 0000000..f9f5c33 --- /dev/null +++ b/example/sys.c @@ -0,0 +1,43 @@ +#include "prb.h" + +i32 main(void) +{ + void *mem; + arena_t arena; + char *dir, *content, *path; + const char *filename = "build.sh"; + + printf("os: "); + switch (OS) { + case OS_LINUX: + printf("linux\n"); + break; + case OS_WINDOWS: + printf("windows\n"); + break; + default: + printf("unsupported\n"); + return 1; + } + + mem = sys_alloc(megabytes(32)); + assert(mem); + sys_free(mem, megabytes(32)); + + arena = alloc_arena(megabytes(32)); + + dir = sys_getbindir(&arena); + printf("bin directory \"%s\"\n", dir); + + path = push_arena(&arena, MAX_PATH); + memset(path, 0, MAX_PATH); + snprintf(path, MAX_PATH, "%s/%s", dir, filename); + + if (sys_read_file(&arena, &content, path)) + printf("%s content:\n%s", path, content); + else + printf("failed to read %s\n", path); + + if (!sys_read_file(&arena, &content, filename)) + die("failed to read %s\n", filename); +} -- cgit v1.2.3-70-g09d2