日本-日本語 |
|
|
|
OpenVMS マニュアル |
|
HP OpenVMS
|
目次 | 索引 |
getpwuid, getpwuid_r (Integrity, Alpha) |
getpwuid関数は,指定された uid のユーザ・データベース・エントリについての情報を返します。getpwuid_r関数は, getpwuidのリエントラント・バージョンです。
#include <pwd.h>関数バリアント getpwuid関数と getpwuid_r関数には, __getpwuid32, _getpwuid_r32, __getpwuid64, _getpwuid_r64という名前のバリアントがあり,それぞれ 32 ビット・ポインタ・サイズおよび 64 ビット・ポインタ・サイズで使用されます。ポインタ・サイズ固有の関数の使い方の詳細については,『HP C ランタイム・ライブラリ・リファレンス・マニュアル(上巻)』第 1.9 節を参照してください。struct passwd *getpwuid (uid_t uid); (ISO POSIX-1)
struct passwd *getpwuid (uid_t uid, ...); (HP C Extension)
int getpwuid_r (uid_t uid, struct passwd *pwd, char *buffer, size_t bufsize, struct passwd **result); (ISO POSIX-1)
int getpwuid_r (uid_t uid, struct passwd *pwd, char *buffer, size_t bufsize, struct passwd **result, ...); (HP C Extension)
uid
属性を読み込むユーザ ID (UID)。pwd
取り出した passwd構造体を格納するメモリ位置。buffer
passwd構造体内のエントリを保持できる, result 引数用の作業バッファ。 passwd構造体から指す記憶域は, buffer引数のメモリ (長さは bufsize 文字) から割り当てられます。bufsize
buffer が指す文字配列の長さ。result
成功して戻った場合,result には pwd が設定されます。失敗して戻った場合,result には NULL が設定されます。...
1 または 0 となるオプションの引数。 1 を指定すると,ディレクトリ指定は,OpenVMS 形式で返されます。 0 を指定すると,ディレクトリ指定 (パス名) は,UNIX 形式で返されます。この引数を省略すると,この関数は現在のコマンド言語インタプリタに従って,ディレクトリ指定を返します。 UNIX 形式のディレクトリ指定についての詳細は,『HP C ランタイム・ライブラリ・リファレンス・マニュアル(上巻)』第 1.3.3 項を参照してください。
getpwuid関数は,ユーザ・データベース内で,指定された uid のエントリを検索します。この関数は, passwd構造体の pw_uidメンバと uid 引数が一致する,データベース内の最初のユーザ・エントリを返します。passwd構造体は, <pwd.h>ヘッダ・ファイルに次のように定義されています。
pw_name ユーザのログイン名 pw_uid 数値ユーザ ID pw_gid 数値グループ ID pw_dir ユーザのホーム・ディレクトリ pw_shell ユーザの初期プログラム
注意
getpwuid関数で生成されたすべての情報は,スレッド単位の静的領域に格納され,この関数の次の呼び出しで上書きされます。
getpwuid_r関数は, getpwuidのリエントラント・バージョンです。 getpwuid_r関数は,pwd が指す passwd構造体をアップデートし, result が指すメモリ位置にこの構造体へのポインタを格納します。この構造体には, uid が一致するユーザ・データベースのエントリが格納されます。この構造体から指す記憶域は, buffer 引数のメモリ (サイズは bufsize 文字) から割り当てられます。このバッファに必要なサイズは, sysconf関数の _SC_GETGR_R_SIZE_MAX パラメータで調べることができます。エラーの場合,または要求されたエントリが見つからない場合は, result が指すメモリ位置に,NULL ポインタが返されます。
エラー状態をチェックするアプリケーションは, getpwuidを呼び出す前に, errnoに 0 を設定する必要があります。 getpwuidが NULL ポインタを返し, errnoがゼロでない場合,エラーが発生しています。
UIC の表現方法については getuidも参照したください。
x 一致するエントリが見つかった場合, getpwuid は正しい passwd 構造体へのポインタを返します。 NULL エラーが発生した場合,または指定されたエントリが見つからなかった場合, getpwuid は NULL を返します。 errno には,エラーを示す値が設定されます。 getpwuid 関数は,以下の場合に失敗します。
- EIO -- 入出力エラーが発生しました。
- EINTR -- getpwuid の実行中にシグナルをキャッチしました。
- EMFILE -- 呼び出し元プロセス内で, OPEN_MAX 個のファイル記述子が現在オープンされています。
- ENFILE -- 許されている最大個数のファイルが,現在システム内でオープンされています。
0 成功した場合, getpwuid_r は 0 を返し, result が指すメモリ位置に,アップデートした passwd 構造体へのポインタを格納します。 0 失敗した場合 (エラー,または要求されたエントリが見つからない場合), getpwuid_r は 0 を返し, result が指すメモリ位置に,NULL ポインタを格納します。 getpwuid_r 関数は,次の場合に失敗します。
- ERANGE -- buffer と bufsize で指定された記憶域は,得られた passwd 構造体から指すデータを格納するには不十分です。
目次 | 索引 |
|