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
|
 |
|
|