ref: 65bd53b9b89b0a84d0f16db4adc3f53fa6ab3a3a
dir: /sys/src/ape/lib/ap/plan9/getpwnam.c/
#include "lib.h" #include <stddef.h> #include <pwd.h> #include <string.h> static struct passwd holdpw; static char dirbuf[40] = "/usr/"; static char *rc = "/bin/rc"; struct passwd * getpwnam(const char *name) { int num; char *nam, *mem; num = 0; nam = (char*)name; mem = 0; if(_getpw(&num, &nam, &mem)){ holdpw.pw_name = nam; holdpw.pw_passwd = ""; holdpw.pw_uid = num; holdpw.pw_gid = num; strncpy(dirbuf+5, nam, sizeof(dirbuf)-6); holdpw.pw_dir = dirbuf; holdpw.pw_gecos = ""; holdpw.pw_shell = rc; return &holdpw; } return NULL; }