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 getpwnam_r (linux section 3posix)

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

       getpwnam, getpwnam_r - search user database for a name

       #include <pwd.h>

       struct passwd *getpwnam(const char *name);

       int getpwnam_r(const char *name, struct passwd *pwd, char *buffer,
	      size_t bufsize, struct passwd **result);

       The getpwnam() function shall search the user database for an entry with a matching name.

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

       Applications wishing to check for error situations should set errno to  0  before  calling
       getpwnam(). If getpwnam() returns a null pointer and errno is non-zero, an error occurred.

       The  getpwnam_r() function shall update the passwd structure pointed to by pwd and store a
       pointer to that structure at the location pointed to by result. The structure  shall  con-
       tain  an  entry	from  the  user  database with a matching name. Storage referenced by the
       structure is allocated from the memory provided with the buffer parameter, which  is  buf-
       size  bytes  in	size.  The maximum size needed for this buffer can be determined with the
       {_SC_GETPW_R_SIZE_MAX} sysconf() parameter. A NULL pointer shall be returned at the  loca-
       tion pointed to by result on error or if the requested entry is not found.

       The  getpwnam()	function  shall return a pointer to a struct passwd with the structure as
       defined in <pwd.h> with a matching entry if found. A null pointer shall be returned if the
       requested entry is not found, or an error occurs. On error, errno shall be set to indicate
       the error.

       The return value may point to a static area which is overwritten by a subsequent  call  to
       getpwent(), getpwnam(), or getpwuid().

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

       The getpwnam() and getpwnam_r() functions may fail if:

       EIO    An I/O error has occurred.

       EINTR  A signal was caught during getpwnam().

       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.

       The getpwnam_r() function may fail if:

       ERANGE Insufficient storage was supplied via buffer and bufsize to contain the data to  be
	      referenced by the resulting passwd structure.

       The following sections are informative.

   Getting an Entry for the Login Name
       The  following  example	uses  the  getlogin() function to return the name of the user who
       logged in; this information is passed to the getpwnam() function to get the user  database
       entry for that user.

	      #include <sys/types.h>
	      #include <pwd.h>
	      #include <unistd.h>
	      #include <stdio.h>
	      #include <stdlib.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())
       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.

       The getpwnam_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.



       getpwuid()  ,  the  Base  Definitions volume of IEEE Std 1003.1-2001, <limits.h>, <pwd.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				      GETPWNAM(P)

All times are GMT -4. The time now is 05:18 PM.

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