NAME
	  getlogin, getlogin_r,	setlogin - Gets	and sets login name

     SYNOPSIS
	  #include <unistd.h>
	  char *getlogin( void );
	  int getlogin_r(
	       char *name,
	       int len );
	  int setlogin (
	       char *name );


     PARAMETERS
	  name	    Points to the login	name.

	  len	    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, as previously set by
	  the setlogin() function.  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 is
	  invoked).

	  The getlogin_r() function is the reentrant version of	getlo-
	  gin().  Upon successful completion, the login	name is	stored
	  in name.

     NOTES
	  AES Support Level:
			 Full use (getlogin())


     RETURN VALUES
	  Upon successful completion, the getlogin() function returns
	  a pointer to a null-terminated string	in a static buffer.
	  If the name has not been set,	it returns null.

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


	  [EFAULT]  The	name parameter gave an invalid address.

	  [EINVAL]  The	name parameter pointed to a string that	was
		    too	long.  Login names are limited to MAXLOGNAME
		    characters (defined	in sys/param.h).

	  [EPERM]   The	caller tried to	set the	login name and was not
		    the	superuser.


     RELATED INFORMATION
	  Functions: setsid(2)

	  Command: su(1)



























Acknowledgement and Disclaimer