diff options
author | Ralf Corsepius <ralf.corsepius@rtems.org> | 2003-08-18 07:31:32 +0000 |
---|---|---|
committer | Ralf Corsepius <ralf.corsepius@rtems.org> | 2003-08-18 07:31:32 +0000 |
commit | c5f52e9725745b0cd81e3b2b4881fc2360f830ec (patch) | |
tree | 1db87a69b5067c144aa105f34199b133a15fcfa9 /cpukit/libcsupport/src/getlogin.c | |
parent | 2003-08-18 Ralf Corsepius <corsepiu@faw.uni-ulm.de> (diff) | |
download | rtems-c5f52e9725745b0cd81e3b2b4881fc2360f830ec.tar.bz2 |
2003-08-18 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
PR 449/rtems:
* src/getegid.c: New (Copied from ../posix/src).
* src/geteuid.c: New (Copied from ../posix/src).
* src/getgid.c: New (Copied from ../posix/src).
* src/getgroups.c: New (Copied from ../posix/src).
* src/getlogin.c: New (Copied from ../posix/src).
* src/getpgrp.c: New (Copied from ../posix/src).
* src/getpid.c: New (Copied from ../posix/src).
* src/getppid.c: New (Copied from ../posix/src).
* src/getuid.c: New (Copied from ../posix/src).
* src/setpgid.c: New (Copied from ../posix/src).
* src/setsid.c: New (Copied from ../posix/src).
* src/no_posix: Remove getpid and _getpid_r.
* Makefile.am: Reflect changes above.
Diffstat (limited to 'cpukit/libcsupport/src/getlogin.c')
-rw-r--r-- | cpukit/libcsupport/src/getlogin.c | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/cpukit/libcsupport/src/getlogin.c b/cpukit/libcsupport/src/getlogin.c new file mode 100644 index 0000000000..64ee0b6d02 --- /dev/null +++ b/cpukit/libcsupport/src/getlogin.c @@ -0,0 +1,64 @@ +/* + * $Id$ + */ + +#if HAVE_CONFIG_H +#include "config.h" +#endif + +#include <limits.h> +#include <string.h> +#include <sys/types.h> +#include <errno.h> + +#include <rtems/system.h> +#include <rtems/score/object.h> +#include <rtems/seterr.h> +#include <rtems/userenv.h> + +#include <unistd.h> +#include <pwd.h> + +/*PAGE + * + * 4.2.4 Get User Name, P1003.1b-1993, p. 87 + * + * NOTE: P1003.1c/D10, p. 49 adds getlogin_r(). + */ + +/* + * MACRO in userenv.h + * +static char _POSIX_types_Getlogin_buffer[ LOGIN_NAME_MAX ]; +*/ + +char *getlogin( void ) +{ + (void) getlogin_r( _POSIX_types_Getlogin_buffer, LOGIN_NAME_MAX ); + return _POSIX_types_Getlogin_buffer; +} + +/*PAGE + * + * 4.2.4 Get User Name, P1003.1b-1993, p. 87 + * + * NOTE: P1003.1c/D10, p. 49 adds getlogin_r(). + */ + +int getlogin_r( + char *name, + size_t namesize +) +{ + struct passwd *pw; + if ( namesize < LOGIN_NAME_MAX ) + return ERANGE; + + pw=getpwuid(getuid()); + if (!pw) { + strcpy(name,""); + } else { + strncpy(name,pw->pw_name,LOGIN_NAME_MAX); + }; + return 0; +} |