sysname.c - 9base - revived minimalist port of Plan 9 userland to Unix
(HTM) git clone git://git.suckless.org/9base
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
sysname.c (420B)
---
1 #include <u.h>
2 #include <libc.h>
3
4 char*
5 sysname(void)
6 {
7 static char buf[512];
8 char *p, *q;
9
10 if(buf[0])
11 return buf;
12
13 if((q = getenv("sysname")) != nil && q[0] != 0){
14 utfecpy(buf, buf+sizeof buf, q);
15 free(q);
16 return buf;
17 }
18 if(q)
19 free(q);
20
21 if(gethostname(buf, sizeof buf) >= 0){
22 buf[sizeof buf-1] = 0;
23 if((p = strchr(buf, '.')) != nil)
24 *p = 0;
25 return buf;
26 }
27
28 strcpy(buf, "gnot");
29 return buf;
30 }