getlogin(2)getlogin(2)NAME
getlogin, getlogin_r, setlogin - Get or set the login name
SYNOPSIS
#include <unistd.h>
char *getlogin(
void ); int getlogin_r(
char *name,
size_t len ); int setlogin(
char *name );
The following function prototype does not conform to current standards
and is supported only for backward compatibility: int getlogin_r(
char *name,
int len );
STANDARDS
Interfaces documented on this reference page conform to industry stan‐
dards as follows:
getlogin(): XSH4.0, XSH4.2, XSH5.0
getlogin_r(): XSH5.0
Refer to the standards(5) reference page for more information about
industry standards and associated tags.
PARAMETERS
Points to the login name. Specifies the length of the buffer pointed
to by name.
DESCRIPTION
The getlogin() function returns the login name of the user associated
with the current session. The name is normally associated with a login
shell at the time a session is created, and is inherited by all pro‐
cesses descended from the login shell. (This is true even if some of
those processes assume another user ID, for example when the su command
is used.)
The setlogin() function sets the login name of the user associated with
the current session to name. This call is restricted to the superuser,
and is normally used only when a new session is being created on behalf
of the named user (for example, at login time, or when a remote shell
is invoked).
The getlogin_r() function is the reentrant version of getlogin(). Upon
successful completion, the login name is stored in name.
RETURN VALUES
Upon successful completion, the getlogin() function returns a pointer
to a null-terminated string in a static buffer or a null pointer if the
user's login name cannot be found. If getlogin() fails, a null pointer
is returned, and errno is set to indicate the error.
Upon successful completion, the setlogin() function returns a value of
0 (zero). If setlogin() fails, then a value of -1 is returned and an
error code is placed in errno.
Upon successful completion, the getlogin_r() function returns a value
of 0 (zero). Otherwise, an error number is returned.
[Tru64 UNIX] Upon successful completion, the obsolete version of the
getlogin_r() function returns a value of 0 (zero). Otherwise, -1 is
returned and errno is set to indicate the error.
ERRORS
If the getlogin(), getlogin_r(), or setlogin() function fails, errno
may be set to one of the following values: [Tru64 UNIX] The name
parameter gave an invalid address. [Tru64 UNIX] The name parameter
pointed to a string that was too long.
[Tru64 UNIX] Login names are limited to 64 characters, as spec‐
ified by MAXLOGNAME (which is defined in <sys/user.h>). However,
this name limit must be enabled in the kernel at boot time by
explicitly setting the generic subsystem's login_name_max
attribute to 64. For backward compatibility reasons, 12 is the
default value of the login_name_max attribute.
An additional value for a setlogin() failure is the following: [Tru64
UNIX] The caller tried to set the login name and was not the supe‐
ruser.
SEE ALSO
Commands: su(1)
Functions: setsid(2)
Standards: standards(5)getlogin(2)