diff options
Diffstat (limited to 'example/sys.c')
-rw-r--r-- | example/sys.c | 43 |
1 files changed, 43 insertions, 0 deletions
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); +} |