getuser-posix.c 305 B

12345678910111213141516171819202122
  1. #include "lib9.h"
  2. #include <pwd.h>
  3. char*
  4. getuser(void)
  5. {
  6. struct passwd *p;
  7. static char *user = 0;
  8. if (!user) {
  9. p = getpwuid(getuid());
  10. if (p && p->pw_name) {
  11. user = malloc(strlen(p->pw_name)+1);
  12. if (user)
  13. strcpy(user, p->pw_name);
  14. }
  15. }
  16. if(!user)
  17. user = "unknown";
  18. return user;
  19. }