Home Man
Today's Posts

Linux & Unix Commands - Search Man Pages
Man Page or Keyword Search:
Select Section of Man Page:
Select Man Page Repository:

Linux 2.6 - man page for getlogin (linux section 3posix)

GETLOGIN(P)			    POSIX Programmer's Manual			      GETLOGIN(P)

       getlogin, getlogin_r - get login name

       #include <unistd.h>

       char *getlogin(void);

       int getlogin_r(char *name, size_t namesize);

       The  getlogin() function shall return a pointer to a string containing the user name asso-
       ciated by the login activity with the controlling terminal of the current process. If get-
       login()	returns  a  non-null  pointer, then that pointer points to the name that the user
       logged in under, even if there are several login names with the same user ID.

       The getlogin() function need not be reentrant. A function that is not required to be reen-
       trant is not required to be thread-safe.

       The  getlogin_r()  function  shall  put the name associated by the login activity with the
       controlling terminal of the current process in the character array pointed to by name. The
       array  is  namesize characters long and should have space for the name and the terminating
       null character. The maximum size of the login name is {LOGIN_NAME_MAX}.

       If getlogin_r() is successful, name points to the name the user used  at  login,  even  if
       there are several login names with the same user ID.

       Upon  successful completion, getlogin() shall return a pointer to the login name or a null
       pointer if the user's login name cannot be  found.  Otherwise,  it  shall  return  a  null
       pointer and set errno to indicate the error.

       The  return value from getlogin() may point to static data whose content is overwritten by
       each call.

       If successful, the getlogin_r() function shall return zero;  otherwise,	an  error  number
       shall be returned to indicate the error.

       The getlogin() and getlogin_r() functions may fail if:

       EMFILE {OPEN_MAX} file descriptors are currently open in the calling process.

       ENFILE The maximum allowable number of files is currently open in the system.

       ENXIO  The calling process has no controlling terminal.

       The getlogin_r() function may fail if:

       ERANGE The  value  of  namesize	is  smaller  than the length of the string to be returned
	      including the terminating null character.

       The following sections are informative.

   Getting the User Login Name
       The following example calls the getlogin() function to obtain the name of the user associ-
       ated  with  the calling process, and passes this information to the getpwnam() function to
       get the associated user database information.

	      #include <unistd.h>
	      #include <sys/types.h>
	      #include <pwd.h>
	      #include <stdio.h>
	      char *lgn;
	      struct passwd *pw;
	      if ((lgn = getlogin()) == NULL || (pw = getpwnam(lgn)) == NULL) {
		  fprintf(stderr, "Get of user information failed.\n"); exit(1);

       Three names associated with the current process can be  determined:  getpwuid(  geteuid())
       shall  return  the  name  associated with the effective user ID of the process; getlogin()
       shall return the name associated with the current login activity; and getpwuid(	getuid())
       shall return the name associated with the real user ID of the process.

       The  getlogin_r()  function  is	thread-safe  and returns values in a user-supplied buffer
       instead of possibly using a static data area that may be overwritten by each call.

       The getlogin() function returns a pointer to the user's login name. The same user  ID  may
       be  shared by several login names. If it is desired to get the user database entry that is
       used during login, the result of getlogin() should be used to provide the argument to  the
       getpwnam() function. (This might be used to determine the user's login shell, particularly
       where a single user has multiple login shells with distinct login names, but the same user

       The  information  provided  by the cuserid() function, which was originally defined in the
       POSIX.1-1988 standard and subsequently removed, can be obtained by the following:


       while the information provided by historical implementations of cuserid() can be  obtained


       The  thread-safe  version  of this function places the user name in a user-supplied buffer
       and returns a non-zero value if it fails. The non-thread-safe version may return the  name
       in a static data area that may be overwritten by each call.


       getpwnam()  ,  getpwuid()  ,  geteuid()	,  getuid()  ,	the  Base  Definitions	volume of
       IEEE Std 1003.1-2001, <limits.h>, <unistd.h>

       Portions of this text are reprinted and	reproduced  in	electronic  form  from	IEEE  Std
       1003.1,	2003  Edition,	Standard  for Information Technology -- Portable Operating System
       Interface (POSIX), The Open Group Base Specifications Issue 6, Copyright (C) 2001-2003  by
       the  Institute  of  Electrical  and  Electronics Engineers, Inc and The Open Group. In the
       event of any discrepancy between this version and the original IEEE  and  The  Open  Group
       Standard, the original IEEE and The Open Group Standard is the referee document. The orig-
       inal Standard can be obtained online at http://www.opengroup.org/unix/online.html .

IEEE/The Open Group			       2003				      GETLOGIN(P)

All times are GMT -4. The time now is 04:15 AM.

Unix & Linux Forums Content Copyrightę1993-2018. All Rights Reserved.
Show Password