| .TH GETUSER 3 |
| .SH NAME |
| getuser, sysname \- get user or system name |
| .SH SYNOPSIS |
| .B #include <u.h> |
| .br |
| .B #include <libc.h> |
| .PP |
| .B |
| char* getuser(void) |
| .PP |
| .B |
| char* sysname(void) |
| .SH DESCRIPTION |
| .I Getuser |
| returns a pointer to static data which contains the |
| null-terminated |
| name of the user who |
| owns the current process. |
| .I Getuser |
| calls |
| .IR getuid (2) |
| and then reads |
| .B /etc/passwd |
| to find the corresponding name. |
| .PP |
| .I Sysname |
| returns a pointer to static data which contains the name |
| of the machine on which the current process is running. |
| .I Sysname |
| looks first for an environment variable |
| .BR $sysname . |
| If there is no such variable, |
| .I sysname |
| calls |
| .IR gethostname (2) |
| and truncates the returned name at the first dot. |
| If |
| .I gethostname |
| fails, |
| .I sysname |
| returns the default name |
| .LR gnot . |
| .PP |
| Unlike |
| .IR getuser , |
| .I sysname |
| caches the string, deriving the host name only once. |
| .SH SOURCE |
| .B \*9/src/lib9/getuser.c |
| .br |
| .B \*9/src/lib9/sysname.c |