From aaf60637370acb1db20fb4fe6d0f80752a06f418 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Thu, 24 May 2001 21:38:10 +0000 Subject: 2000-05-24 Fernando Ruiz Casas * src/getegid.c, src/geteuid.c, src/getgid.c, src/getlogin.c, src/getuid.c: Now save their values in private user environment. --- cpukit/posix/src/getlogin.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'cpukit/posix/src/getlogin.c') diff --git a/cpukit/posix/src/getlogin.c b/cpukit/posix/src/getlogin.c index 3e4d320b89..08a16c6430 100644 --- a/cpukit/posix/src/getlogin.c +++ b/cpukit/posix/src/getlogin.c @@ -15,6 +15,11 @@ #include #include +#include +#include +#include +#include + /*PAGE * * 4.2.4 Get User Name, P1003.1b-1993, p. 87 @@ -22,7 +27,11 @@ * NOTE: P1003.1c/D10, p. 49 adds getlogin_r(). */ +/* + * MACRO in libio_.h + * static char _POSIX_types_Getlogin_buffer[ LOGIN_NAME_MAX ]; +*/ char *getlogin( void ) { @@ -42,9 +51,15 @@ int getlogin_r( size_t namesize ) { + struct passwd *pw; if ( namesize < LOGIN_NAME_MAX ) return ERANGE; - strcpy( name, "posixapp" ); + pw=getpwuid(getuid()); + if (!pw) { + strcpy(name,""); + } else { + strncpy(name,pw->pw_name,LOGIN_NAME_MAX); + }; return 0; } -- cgit v1.2.3