getlogin, getlogin_r - get login name


     #include <unistd.h>

     char *getlogin(void);

     char *getlogin_r(char *name, int namelen);

     cc [ flag ... ] file... -D_POSIX_PTHREAD_SEMANTICS [ library ... ]

     int getlogin_r(char *name, size_t namesize);


     The getlogin() function returns a pointer to the login  name
     as  found  in  /var/adm/utmpx. It may be used in conjunction
     with getpwnam(3C) to locate the correct password file  entry
     when the same user ID is shared by several login names.

     If getlogin()  is  called  within  a  process  that  is  not
     attached  to  a  terminal,  it  returns  a null pointer. The
     correct procedure for determining the login name is to  call
     cuserid(3C),  or  to call getlogin() and if it fails to call

     The getlogin_r() function has the same functionality as get-
     login()  except  that  the  caller must supply a buffer name
     with length namelen to store the result.   The  name  buffer
     must   be  at  least  _POSIX_LOGIN_NAME_MAX  bytes  in  size
     (defined  in  <limits.h>).  The  POSIX  version  (see  stan-
     dards(5)) of getlogin_r() takes a namesize parameter of type


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

     The POSIX getlogin_r() returns 0 if successful, or the error
     number upon failure.


     The getlogin() function may fail if:

           There are OPEN_MAX file descriptors currently open  in
           the calling process.

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

     ENXIO The calling process has no controlling terminal.

     The getlogin_r() function will fail if:

           The size of the buffer is smaller than the  result  to
           be returned.

           And entry for the current user was not  found  in  the
           /var/adm/utmpx file.


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

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


           user access and administration information


     See attributes(5) for descriptions of the  following  attri-

    |       ATTRIBUTE TYPE        |       ATTRIBUTE VALUE       |
    | MT-Level                    | See NOTES below.            |


     geteuid(2),    getuid(2),     cuserid(3C),     getgrnam(3C),
     getpwnam(3C),  getpwuid(3C),  utmpx(4), attributes(5), stan-


     When compiling multithreaded programs, see  Intro(3),  Notes
     On Multithreaded Applications.

     The getlogin() function is unsafe in multithreaded  applica-
     tions.  The getlogin_r() function should be used instead.
     Solaris 2.4 and earlier releases provided a getlogin_r()  as
     specified  in  POSIX.1c Draft 6. The final POSIX.1c standard
     changed the interface as described above.  Support  for  the
     Draft 6 interface is provided for compatibility only and may
     not be supported in future releases.  New  applications  and
     libraries should use the POSIX standard interface.

Man(1) output converted with man2html