Table of Contents
The
routine returns the login name of the user associated with the current
session, as previously set by 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 is used.) sets the login name
of the user associated with the current session to This call is restricted
to the super-user, 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).
If a call to succeeds, it returns
a pointer to a null-terminated string in a static buffer. If the name has
not been set, it returns If a call to succeeds, a value of 0 is returned.
If fails, a value of -1 is returned and an error code is placed in the
global location
The following errors may be returned by these calls:
The parameter gave an invalid address. The parameter pointed to a string
that was too long. Login names are limited to (from characters, currently
12. The caller tried to set the login name and was not the super-user.
Login names are limited in length by However, lower limits are
placed on login names elsewhere in the system in In earlier versions
of the system, failed unless the process was associated with a login terminal.
The current implementation (using allows getlogin to succeed even when
the process has no controlling terminal. In earlier versions of the system,
the value returned by could not be trusted without checking the user ID.
Portable programs should probably still make this check.
The function
first appeared in 4.4BSD.
Table of Contents