P8000/WEGA/contrib/lcc/lib/libc/port/stdio/cuserid.c

28 lines
441 B
C

#include <stdio.h>
#include <pwd.h>
extern char *strcpy(), *getlogin();
extern int getuid();
extern struct passwd *getpwuid();
static char res[L_cuserid];
char *
cuserid(s)
char *s;
{
register struct passwd *pw;
register char *p;
if (s == NULL)
s = res;
p = getlogin();
if (p != NULL)
return (strcpy(s, p));
pw = getpwuid(getuid());
endpwent();
if (pw != NULL)
return (strcpy(s, pw->pw_name));
*s = '\0';
return (NULL);
}