diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2001-05-24 21:38:10 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2001-05-24 21:38:10 +0000 |
commit | aaf60637370acb1db20fb4fe6d0f80752a06f418 (patch) | |
tree | a49c12ad4a109a36826139f7d11d754adf2bed2a /cpukit/posix/src/getlogin.c | |
parent | 2001-05-24 Tom Armistead <tom_armistead@phx.mcd.mot.com> (diff) | |
download | rtems-aaf60637370acb1db20fb4fe6d0f80752a06f418.tar.bz2 |
2000-05-24 Fernando Ruiz Casas <fernando.ruiz@ctv.es>
* src/getegid.c, src/geteuid.c, src/getgid.c, src/getlogin.c,
src/getuid.c: Now save their values in private user environment.
Diffstat (limited to 'cpukit/posix/src/getlogin.c')
-rw-r--r-- | cpukit/posix/src/getlogin.c | 17 |
1 files changed, 16 insertions, 1 deletions
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 <rtems/score/object.h> #include <rtems/seterr.h> +#include <rtems/libio_.h> +#include <string.h> +#include <unistd.h> +#include <pwd.h> + /*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; } |