getpwuid() - ユーザー ID によるユーザー・データベースへのアクセス
標準
| 標準/拡張機能 | C/C++ | 依存項目 |
|---|---|---|
POSIX.1 |
両方 |
形式
#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