|
≫ |
|
|
|
HP OpenVMS HP C ランタイム・ライブラリ・リファレンス・マニュアル (下巻)
名前に対応するグループ・データベース・エントリを取得します。
形式
#include <types.h>
#include <grp.h>
int getgrnam_r (const char *name, struct group *grp, char *buffer, size_t
bufsize, struct group **result);
引数
nameグループ・データベース・エントリを取り出すグループのグループ名。
grp取り出した
group構造体を保持する記憶域。
bufferデータベース内の最長のグループ・エントリを保持できる作業バッファ。
bufsize
buffer の長さ (文字数)。
result成功して戻った場合, result は取り出した
group構造体を指します。
失敗して戻った場合, result には NULL が設定されます。
説明
getgrnam_r関数は, grp が指す
group構造体をアップデートし, result が指すメモリ位置に,この構造体へのポインタを格納します。この構造体には, name が一致したグループ・データベースのエントリが格納されています。
group構造体から指す記憶域は, buffer 引数のメモリ (サイズは bufsize 文字) から割り当てられます。このバッファに必要なサイズは,
sysconf関数の _SC_GETGR_R_SIZE_MAX パラメータで調べることができます。エラーの場合,または要求されたエントリが見つからない場合は, result が指すメモリ位置に,NULL ポインタが返されます。
戻り値
0
|
成功を示します。
|
x
|
エラーの場合,この関数は以下のいずれかの値を戻り値として設定します。
- EACCES -- ユーザ・プロセスが,ユーザ登録ファイルにアクセスするための適切な特権を持っていません。
- EIO -- 入出力エラーが発生しました。
- EINTR --
getgrnam
の実行中にシグナルをキャッチしました。
- EMFILE -- 呼び出し元プロセス内で, OPEN_MAX 個のファイル記述子が現在オープンされています。
- ENFILE -- 許されている最大個数のファイルが,現在システム内でオープンされています。
- ERANGE --
buffer 引数と
bufsize 引数で指定された記憶域は,得られた
group
構造体から指すデータを格納するには不十分です。
|
|