getlogin(3c) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨 페이지 이름
검색(S)

getlogin(3c)

getlogin(3C)             Standard C Library Functions             getlogin(3C)

NAME
       getlogin, getlogin_r - get login name

SYNOPSIS
       #include <unistd.h>

       char *getlogin(void);


       int getlogin_r(char *name, size_t namesize);

   POSIX.1c Draft 6
       #define __USE_DRAFT6_PROTOTYPES__
       #include <grp.h>


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

DESCRIPTION
       The getlogin() function returns a pointer to the login name as found in
       /var/adm/utmpx.  It can be used in conjunction with getpwnam(3C) to lo‐
       cate 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 ter‐
       minal, 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 getpwuid(3C).


       The  getlogin_r() function has the same functionality as getlogin() ex‐
       cept that the caller must supply a buffer name with  size  namesize  to
       store  the  result.  The  name  buffer  must  be  at  least  _POSIX_LO‐
       GIN_NAME_MAX bytes in size (defined in <limits.h>).

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


       The  getlogin_r() function returns 0 if successful, or the error number
       upon failure. It does not set errno.

ERRORS
       The getlogin_r() function will fail if:

       ERANGE    The size of the buffer is smaller than the result to  be  re‐
                 turned.


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



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

       EMFILE    There are {OPEN_MAX} file descriptors 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.


USAGE
       The return value of getlogin() points  to  thread-specific  data  whose
       content  is overwritten on each call by the same thread, and which must
       not be referenced after the termination of the thread which called get‐
       login().


       Three names associated with the current process can be determined: get‐
       pwuid(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.

FILES
       /var/adm/utmpx    user access and administration information


ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:

       tab() box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) ATTRIBUTE  TYPEAT‐
       TRIBUTE  VALUE  _  Interface StabilityCommitted _ MT-LevelSee below.  _
       StandardSee standards(7).



       The getlogin() function is safe to use in  multithreaded  applications,
       but is discouraged. The getlogin_r() function should be used instead.

SEE ALSO
       geteuid(2),   getuid(2),   getpwnam(3C),   cuserid(3C),   getgrnam(3C),
       getpwuid(3C), utmpx(5), attributes(7), standards(7)

NOTES
       Prior to Oracle Solaris 11.4, the default compilation environment  pro‐
       vided  a  definition  of  the  getlogin_r()  function  as  specified in
       POSIX.1c Draft 6. The final POSIX.1c standard changed the interface for
       getlogin_r(). To allow applications that were written to use the  obso‐
       lete  Draft-6  interfaces  to  continue  to  be  compiled  and run, the
       __USE_DRAFT6_PROTOTYPES__ macro must be defined:

         cc -D__USE_DRAFT6_PROTOTYPES__ ...



       Support for the Draft-6 interfaces is provided for source compatibility
       only and might not be supported in future  releases.  Old  applications
       should be converted to use the standard definitions.

HISTORY
       Oracle  Solaris  11.4.0 made the standards-conforming version of getlo‐
       gin_r() the default definition,  removing  the  requirement  to  define
       _POSIX_C_SOURCE   or   _POSIX_PTHREAD_SEMANTICS  before  including  the
       header, and adding the requirement to define  __USE_DRAFT6_PROTOTYPES__
       to  expose the Draft 6 version instead. Solaris 11.4.0 also removed the
       requirement to define _REENTRANT before including the header to  expose
       the _r function variant.


       In Solaris 2.5, the final POSIX.1c standard version of getlogin_r() was
       added,  but  only  exposed  in the header if _POSIX_C_SOURCE was set to
       199506 or higher, or _POSIX_PTHREAD_SEMANTICS was defined,  before  in‐
       cluding the <unistd.h> header.


       Solaris  2.3  added a definition of the getlogin_r() function as speci‐
       fied in POSIX.1c Draft 6. This  definition  was  only  exposed  in  the
       header  if  _REENTRANT  was  defined  before  including  the <unistd.h>
       header.


       The getlogin() function has been included in all  Sun  and  Oracle  re‐
       leases of Solaris.

Oracle Solaris 11.4               27 Aug 2025                     getlogin(3C)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3