#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); }