QlgGetpwnam()--Get User Information for User Name (using NLS-enabled path name)
Syntax
#include <pwd.h> struct qplg_passwd *QlgGetpwnam(const char *name);Service Program Name: QSYPAPI
Default Public Authority: *USE
Threadsafe: No
The QlgGetpwnam() function returns a pointer to an object of type struct qplg_passwd containing an entry from the user database with a matching name.
Parameters
- name
- (Input) User profile name.
The struct qplg_passwd, which is defined in the pwd.h header file, has the following elements:
char * | pw_name | User name |
uid_t | pw_uid | User ID |
uid_t | pw_gid | Group ID |
Qlg_Path_Name_T* | pw_dir | Initial working directory |
char * | pw_shell | Initial user program |
See getpwnam()--Get User Information for User Name for more information about the parameter.
Authorities
*READ authority is required to the user profile associated with the name.
Note: Adopted authority is not used.
Return Value
- value
- QlgGetpwnam was successful. The return value points to
static data that is overwritten on each call to this function. This static
storage area is also used by the QlgGetpwuid() function.
- NULL pointer
- QlgGetpwnam was not successful. The errno global variable is set to indicate the error.
Error Conditions
If QlgGetpwnam() is not successful, errno usually indicates one of the following errors. Under some conditions, errno could indicate an error other than those listed here.
Error condition | Additional information |
---|---|
[EAGAIN] |
The user profile associated with the name is currently locked by another process. |
[EC2] |
Detected pointer that is not valid. |
[EINVAL] |
Value is not valid. Check the job log for messages. |
[ENOENT] |
The user profile associated with the name was not found. |
[ENOMEM] |
The user profile associated with the UID has exceeded its storage limit or is unable to allocate memory. |
[EPERM] |
The calling job does not have *READ authority to the user profile associated with the name. |
[EUNKNOWN] |
Unknown system state. Check the job log for a CPF9872 message. If there is no message, verify that the home directory field in the user profile can be displayed. |
Usage Notes
The path name is returned in the default IFS UNICODE CCSID.
Related Information
- The <pwd.h> file (see Header
Files for UNIX®-Type APIs)
- getpwnam()--Get User Information for User Name
Qlg getpwnam_r
- getpwnam_r()--Get User Information for User
Name
- QlgGetpwnam_r()--Get User Information for User Name (using NLS-enabled path name)
Example
The following example gets the user database information for the user name of MYUSER. The UID is 22. The GID is 1012. The initial working directory is /home/MYUSER. The initial user program is *LIBL/QCMD.
Note: By using the code examples, you agree to the terms of the Code license and disclaimer information.
#include <pwd.h> main() { struct qplg_passwd *pd; if (NULL == (pd = QlgGetpwnam("MYUSER"))) perror("QlgGetpwnam() error."); else { printf("The user name is: %s\n", pd->pw_name); printf("The user id is: %u\n", pd->pw_uid); printf("The group id is: %u\n", pd->pw_gid); printf("The initial working directory length is: %d\n", pd->pw_dir->Path_Length); printf("The initial working directory CCSID is : %d\n", pd->pw_dir->CCSID); printf("The initial user program is: %s\n", pd->pw_shell); } }
Output:
The user name is: MYUSER The user id is: 22 The group id is: 1012 The initial working directory length is: 24 The initial working directory CCSID is : 13488 The initial user program is: *LIBL/QCMD
API introduced: V5R1