getpwuid() - ユーザー ID によるユーザー・データベースへのアクセス

標準

標準/拡張機能 C/C++ 依存項目

POSIX.1
XPG4
XPG4.2
Single UNIX Specification、バージョン 3

両方  

形式

#define _POSIX_SOURCE
#include <pwd.h>

struct passwd *getpwuid(uid_t uid);

機能説明

指定された uid を持つユーザーに関する情報を取得します。getpwuid() は、指定された uid のユーザー・データベースからの エントリーが入っている passwd 構造体へのポインターを戻します。この構造体は (pwd.h ヘッダー・ファイルで定義された)、以下のメンバーを持 ちます。
pw_name
ユーザー名
pw_uid
ユーザー ID (UID) 番号
pw_gid
グループ ID (GID) 番号
pw_dir
初期作業ディレクトリー
pw_shell
初期ユーザー・プログラム

戻り値は、呼び出しごとに上書きされる静的データを指します。

戻り値

正常に実行された場合、getpwuid() はポインターを戻します。

正常に実行されなかった場合、getpwuid() は NULL ポインターを戻し、errno を以下のいずれかの値に設定します。
エラー・コード
説明
EMVSSAF2ERR
システム許可機能 (SAF) または RACF® Get GMAP または Get UMAP サービスにエラーがありました。
EMVSSAFEXTRERR
SAF または RACF RACROUTE EXTRACT サービスにエラーがありました。

CELEBG17
/* CELEBG17

   This example provides information for user ID 0.

 */
#define _POSIX_SOURCE
#include <sys/types.h>
#include <pwd.h>

main() {
  struct passwd *p;
  uid_t  uid=0;

  if ((p = getpwuid(uid)) == NULL)
    perror("getpwuid() error");
  else {
    printf("getpwuid() returned the following info for uid %d:¥n",
           (int) uid);
    printf("  pw_name  : %s¥n",       p->pw_name);
    printf("  pw_uid   : %d¥n", (int) p->pw_uid);
    printf("  pw_gid   : %d¥n", (int) p->pw_gid);
    printf("  pw_dir   : %s¥n",       p->pw_dir);
    printf("  pw_shell : %s¥n",       p->pw_shell);
  }
}
出力:
getpwuid() returned the following info for uid 0:
  pw_name  : MEGA
  pw_uid   : 0
  pw_gid   : 512
  pw_dir   : /u/mega
  pw_shell : /bin/sh