getlogin man page on SmartOS

Man page or keyword search:  
man Server   16655 pages
apropos Keyword Search (all sections)
Output format
SmartOS logo
[printable version]

GETLOGIN(3C)							  GETLOGIN(3C)

NAME
       getlogin, getlogin_r - get login name

SYNOPSIS
       #include <unistd.h>

       char *getlogin(void);

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

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

       int getlogin_r(char *name, size_t namesize);

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
       locate  the correct password file entry when the same user ID is shared
       by several login names.

       The login name plus the terminating null byte can be up to  33  charac‐
       ters  in length.	 Newly-compiled programs should use the LOGIN_NAME_MAX
       symbol, defined in <limits.h>, to size the buffer.  Older programs that
       call  getlogin()	  expect  only	the  legacy 9-character length.	 These
       automatically link to a version of the getlogin() functions that	 trun‐
       cates  longer  login names.  It's also possible to compile new programs
       that link  to  truncating  versions  of	these  functions  by  defining
       __USE_LEGACY_LOGNAME__ in the compile environment.

       Some  older programs will correctly handle long login names returned by
       the getlogin() function.	 For this case, the user compatibility library
       /usr/lib/getloginx.so.1	redirects to a version of the getlogin() func‐
       tion that returns the long name.	 This library should be added to  such
       an application at runtime using LD_PRELOAD.

       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()
       except that the caller must supply a buffer name with length namelen to
       store the result.  The name buffer should be  at	 least	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 size_t. If
       the size of the supplied buffer is less than the size of LOGIN_NAME_MAX
       and the name, including the null terminator, does not  fit  inside  the
       buffer,	than  an  error will be generated.  Otherwise, the buffer name
       will be updated with the login name.

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.  Oth‐
       erwise it returns a null pointer and sets errno to indicate the error.

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

ERRORS
       The getlogin_r() function will fail if:

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

       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.

       The getlogin_r() function may fail if:

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

USAGE
       The return value of getlogin() points  to  thread-specific  data	 whose
       content is overwritten on each call by the same thread.

       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

       /usr/lib/getloginx.so.1
			 A compatibility library that returns long login names
			 to older applications.

       /usr/lib/64/getloginx.so.1
			 A 64-bit compatibility library to return  long	 login
			 names.

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

       ┌────────────────────┬─────────────────┐
       │  ATTRIBUTE TYPE    │ ATTRIBUTE VALUE │
       ├────────────────────┼─────────────────┤
       │Interface Stability │ Standard	      │
       ├────────────────────┼─────────────────┤
       │MT-Level	    │ See below.      │
       └────────────────────┴─────────────────┘

SEE ALSO
       geteuid(2),  getuid(2),	cuserid(3C), getgrnam(3C), getpwnam(3C), getp‐
       wuid(3C), utmpx(4), attributes(5), standards(5)

NOTES
       When compiling multithreaded programs, see Intro(3).

       The getlogin() function is safe to use in  multithreaded	 applications,
       but is discouraged. 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 standard-conforming inter‐
       face.

				 Mar 15, 2014			  GETLOGIN(3C)
[top]

List of man pages available for SmartOS

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net