Standard C Library Functions getlogin(3C)
NAME
getlogin, getlogin_r - get login name
SYNOPSIS
#include
char *getlogin(void);char *getlogin_r(char *name, int namelen);
Standard conformingcc [ 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 can 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 buffermust be at least _POSIX_LOGIN_NAME_MAX bytes in size
(defined in
). The POSIX version (see stan- dards(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 standard-conforming getlogin_r() returns 0 if success-
ful, or the error number upon failure.ERRORS
SunOS 5.11 Last change: 18 May 2004 1
Standard C Library Functions getlogin(3C)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.The getlogin() and getlogin_r() functions may fail if:
EMFILE There are {OPEN_MAX} file descriptors currently
open in the calling process. ENFILE The maximum allowable number of files is currently open in the system. ENXIO The calling process has no controlling terminal.The getlogin_r() function may fail if:
ERANGE The size of the buffer is smaller than the result to be returned.USAGE
The return value of getlogin() points to thread-specific
data whose content is overwritten on each call by the same thread. 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 informationATTRIBUTES
See attributes(5) for descriptions of the following attri-
butes:SunOS 5.11 Last change: 18 May 2004 2
Standard C Library Functions getlogin(3C)____________________________________________________________
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
|_____________________________|_____________________________|
| Interface Stability | Committed ||_____________________________|_____________________________|
| MT-Level | See below. |
|_____________________________|_____________________________|
| Standard | See standards(5). ||_____________________________|_____________________________|
SEE ALSO
geteuid(2), getuid(2), cuserid(3C), getgrnam(3C),getpwnam(3C), getpwuid(3C), utmpx(4), attributes(5), stan-
dards(5) NOTES When compiling multithreaded programs, see Intro(3). The getlogin() function is safe to use in multithreadedapplications, but is discouraged. The getlogin_r() function
should be used instead.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 andlibraries should use the standard-conforming interface.
SunOS 5.11 Last change: 18 May 2004 3