getgrnam_r() - 名前に対応するグループ・データベースの検索

標準

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

Single UNIX Specification、バージョン 2
Single UNIX Specification、バージョン 3
z/OS® UNIX

両方 OS/390 V2R8

形式

#define _XOPEN_SOURCE 500
#include <sys/types.h>
#include <grp.h>

int getgrnam_r(const char *name, struct group *grp, char *buffer,
size_t bufsize, struct group **result);
 
#define _POSIX_SOURCE
#include <grp.h>

int __getgrnam1(const char *name, struct group *grp, char *buffer,
size_t bufsize, struct group **result);

機能説明

getgrnam_r() 関数は、grp が指すグループ構造体を更新し、その構造体を指すポインターを、result が指すロケーションに保管します。この構造体には、name にマッチングするグループ・データベースのエントリーが入ります。グループ構造体が参照するストレージは、buffer パラメーターによって提供される、サイズが bufsize バイトであるメモリーから割り振られます。エラーの場合、または要求されたエントリーが検出されなかった場合は、result が指すロケーションに NULL ポインターが戻されます。

__getgrnam1() 関数は getgrnam_r() と同じですが、個々のグループ・メンバー名を戻しません。 grp によって指し示されるグループ構造体内のエレメント gr_mem は、NULL に設定されます。

戻り値

正常に実行された場合、getgrnam_r() または __getgrnam1() は 0 を戻します。

正常に実行されなかった場合、getgrnam_r() または _getgrnam1() はエラー番号を戻して、errno を次のいずれかの 値に設定します。

エラー・コード
説明
EINVAL
入力引数の 1 つが無効でした。引数 grpbuffer、および result は、NULL であってはなりません。引数 bufsize は、0 であってはなりません。
ERANGE
buffer および bufsize に指定されたストレージが、結果のグループ構造体が参照するデータを入れるには、不十分です。
EMVSSAFEXTRERR
システム許可機能 (SAF) RACROUTE EXTRACT サービスにエラーがありました。
EMVSSAF2ERR
SAF Get GMAP サービスにエラーがありました。

関連情報