1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
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);
}
|