|  | .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 |