From 92850237f42cecfeba519bc15f7f5bb7a76cde5f Mon Sep 17 00:00:00 2001 From: pryazha Date: Thu, 27 Mar 2025 08:29:28 +0500 Subject: renaming (mostly) --- prb_sys.c | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 prb_sys.c (limited to 'prb_sys.c') diff --git a/prb_sys.c b/prb_sys.c new file mode 100644 index 0000000..3747f18 --- /dev/null +++ b/prb_sys.c @@ -0,0 +1,52 @@ +/* TODO(pryazha): OS specific */ +FLS sys_read_entire_file_fls(Arena *a, const char *fname) +{ + FILE *f; + FLS r; + S32 len; + + MEM0STRUCT(&r); + + f = fopen(fname, "rb"); + if (!f) + return r; + + if (fseek(f, 0, SEEK_END) == -1) + goto error; + if ((len = ftell(f)) == -1) + goto error; + rewind(f); + + r.p = push_arena(a, len+1); + if (!fread(r.p, len, 1, f)) + goto error; + r.p[len] = 0; + r.len = len+1; + + fclose(f); + + return r; +error: + fclose(f); + return r; +} + +#define PRGE_MAX_PATH 256 + +char *sys_getbindir(Arena *a) +{ + U64 size; + char *path; + ssize_t len; + + size = PRGE_MAX_PATH*sizeof(char); + path = push_arena(a, size); + + len = readlink("/proc/self/exe", path, size-1); + if (len <= 0) + return path; + + path[len] = 0; + + return path; +} -- cgit v1.2.3-70-g09d2