manpages.info - online man pages   

SunOS man pages : getlogin (3)

Standard C Library Functions                         getlogin(3C)

NAME

getlogin, getlogin_r - get login name

SYNOPSIS

#include <unistd.h> char *getlogin(void); char *getlogin_r(char *name, int namelen); POSIX cc [ flag ... ] file... -D_POSIX_PTHREAD_SEMANTICS [ library ... ] int getlogin_r(char *name, size_t namesize);

DESCRIPTION

The getlogin() function returns a pointer to the login name as found in /var/adm/utmpx. It may be used in conjunction with getpwnam(3C) to locate the correct password file entry when the same user ID is shared by several login names. If getlogin() is called within a process that is not attached to a terminal, it returns a null pointer. The correct procedure for determining the login name is to call cuserid(3C), or to call getlogin() and if it fails to call getpwuid(3C). The getlogin_r() function has the same functionality as get- login() except that the caller must supply a buffer name with length namelen to store the result. The name buffer must be at least _POSIX_LOGIN_NAME_MAX bytes in size (defined in <limits.h>). The POSIX version (see standards(5) ) of getlogin_r() takes a namesize parameter of type size_t.

RETURN VALUES

Upon successful completion, getlogin() returns a pointer to the login name or a null pointer if the user's login name cannot be found. Otherwise it returns a null pointer and sets errno to indicate the error. The POSIX getlogin_r() returns 0 if successful, or the error number upon failure.

ERRORS

The getlogin() function may fail if: EMFILE There are OPEN_MAX file descriptors currently open in the calling process. ENFILE SunOS 5.8 Last change: 27 Oct 1998 1 Standard C Library Functions getlogin(3C) The maximum allowable number of files is currently open in the system. ENXIO The calling process has no controlling terminal. The getlogin_r() function will fail if: ERANGE The size of the buffer is smaller than the result to be returned. EINVAL And entry for the current user was not found in the /var/adm/utmpx file.

USAGE

The return value may point to static data whose content is overwritten by each call. Three names associated with the current process can be determined: getpwuid(geteuid()) returns the name associated with the effective user ID of the process; getlogin() returns the name associated with the current login activity; and getpwuid(getuid()) returns the name associated with the real user ID of the process.

FILES

/var/adm/utmpx user access and administration information

ATTRIBUTES

See attributes(5) for descriptions of the following attri- butes: ____________________________________________________________ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | |_____________________________|_____________________________| | MT-Level | See NOTES below. | |_____________________________|_____________________________|

SEE ALSO

geteuid(2), getuid(2), cuserid(3C), getgrnam(3C), getpwnam(3C), getpwuid(3C), utmpx(4), attributes(5), standards(5)

NOTES

When compiling multithreaded programs, see Intro(3), Notes On Multithreaded Applications. The getlogin() function is unsafe in multithreaded applica- tions. The getlogin_r() function should be used instead. SunOS 5.8 Last change: 27 Oct 1998 2 Standard C Library Functions getlogin(3C) Solaris 2.4 and earlier releases provided a getlogin_r() as specified in POSIX.1c Draft 6. The final POSIX.1c standard changed the interface as described above. Support for the Draft 6 interface is provided for compatibility only and may not be supported in future releases. New applications and libraries should use the POSIX standard interface. SunOS 5.8 Last change: 27 Oct 1998 3