getlogin, getlogin_r, setlogin - Get or set the login name
void ); int getlogin_r(
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 len );
Interfaces documented on this reference page conform to
industry standards as follows:
getlogin(): XSH4.0, XSH4.2, XSH5.0
Refer to the standards(5) reference page for more information
about industry standards and associated tags.
Points to the login name. Specifies the length of the
buffer pointed to by name.
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 processes 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
The getlogin_r() function is the reentrant version of getlogin().
Upon successful completion, the login name is
stored in name.
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
Upon successful completion, the getlogin_r() function
returns a value of 0 (zero). Otherwise, an error number is
[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.
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 specified 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
An additional value for a setlogin() failure is the following:
[Tru64 UNIX] The caller tried to set the login
name and was not the superuser.
[ Back ]