日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.3-RELEASE-K, 13.0-RELEASE-K から 13.2-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
GETGRENT(3) FreeBSD ライブラリ関数マニュアル GETGRENT(3) 名称 getgrent, getgrent_r, getgrnam, getgrnam_r, getgrgid, getgrgid_r, setgroupent, setgrent, endgrent -- グループデータベースの操作 ライブラリ 標準 C ライブラリ (libc, -lc) 書式 #include <grp.h> struct group * getgrent(void); int getgrent_r(struct group *grp, char *buffer, size_t bufsize, struct group **result); struct group * getgrnam(const char *name); int getgrnam_r(const char *name, struct group *grp, char *buffer, size_t bufsize, struct group **result); struct group * getgrgid(gid_t gid); int getgrgid_r(gid_t gid, struct group *grp, char *buffer, size_t bufsize, struct group **result); int setgroupent(int stayopen); void setgrent(void); void endgrent(void); 解説 これらの関数は、group(5) に記述されたグループデータベースファイル /etc/group で動作します。データベースの各行は、インクルードファイル <grp.h> で見つかる構造体 group によって定義されています: struct group { char *gr_name; /* グループ名 */ char *gr_passwd; /* グループパスワード */ gid_t gr_gid; /* グループ id */ char **gr_mem; /* グループメンバ */ }; 関数 getgrnam() と getgrgid() は、それぞれ、name によって指される与えられ たグループ名、または gid によって指されるグループ id のためのグループデー タベースを検索し、最初に遭遇するものを返します。同一のグループ名またはグ ループ gid は、未定義な振る舞いの結果となります。 getgrent() 関数は、グループデータベースを順次読み込み、グループの完全なリ ストを通して処置することを望むプログラムを対象としています。 関数 getgrent_r(), getgrnam_r() と getgrgid_r() は、それぞれ getgrent(), getgrnam() と getgrgid() のスレッドセーフバージョンです。呼び出し側は、 grp, buffer, bufsize と result 引数で検索の結果のための記憶域を提供しなけ ればなりません。これらの関数が成功するとき、grp 引数は、書き込まれ、その 引数へのポインタは、result に格納されます。エントリが見つけられないか、ま たは、エラーが起こるなら、result は、NULL に設定されます。 これらの関数は、必要であるなら、読み込みのためにグループファイルをオープ ンします。 setgroupent() 関数は、ファイルをオープンするか、または既に、それがオープ ンされているなら、それをリワインドします。stayopen が 0 でないなら、ファ イル記述子は、オープンされたままとなり、続く読みだしで関数を著しく高速に します。この機能は、デフォルトでそのファイル記述子をクローズしないので、 getgrent() に対して不要です。これは、また、グループファイルが更新されるよ うに、この機能を使用する長く実行しているプログラムに対して危険であること を注意するべきです。 setgrent() 関数は、0 の引数を付けた setgroupent() と同一です。 endgrent() 関数は、あらゆるオープンしているファイルをクローズします。 戻り値 関数 getgrent(), getgrnam() と getgrgid() は、成功すれば、group 構造体へ のポインタを返し、エントリが見つけられないか、または、エラーが起こるな ら、NULL を返します。エラーが起こるなら、errno が、設定されます。プログラ ムは、それらが存在していないエントリとエラーを区別する必要があるなら、こ れらの関数のいずれかを呼び出す前に、errno を明示的に 0 に設定しなければな らないことに注意してください。関数 getgrent_r(), getgrnam_r() と getgrgid_r() は、エラーが起こらなかったなら、0 を返すか、または失敗を示す エラー番号を返します。一致しているエントリが見つけられないなら、それは、 エラーではありません。(したがって、result が NULL に設定され、返り値が 0 であるなら、一致しているエントリは、存在しません。) 関数 setgroupent() は、成功したなら、値 1 を返し、そうでなければ、値 0 を 返します。関数 endgrent(), setgrent() と setgrfile() には、返り値はありま せん。 関連ファイル /etc/group グループデータベースファイル 互換性 代替のパスワードデータベースの指定を許可する歴史的な関数 setgrfile() は、 非推奨とされていましたが、もはや利用可能ではありません。 関連項目 getpwent(3), group(5), nsswitch.conf(5), yp(8) 規格 getgrent(), getgrnam(), getgrnam_r(), getgrgid(), getgrgid_r() と endgrent() 関数は、ISO/IEC 9945-1:1996 (``POSIX.1'') に適合しています。 setgrent() 関数は、返り値のタイプが void でなく int であるという点におい て標準と異なっています。 歴史 関数 endgrent(), getgrent(), getgrnam(), getgrgid() と setgrent() は、 Version 7 AT&T UNIX で登場しました。関数 setgrfile() と setgroupent() は、4.3BSD-Reno で登場しました。関数 getgrent_r(), getgrnam_r() と getgrgid_r() は、FreeBSD 5.1 で登場しました。 バグ 関数 getgrent(), getgrnam(), getgrgid(), setgroupent() と setgrent() は、 それらの結果を内部の静的オブジェクトに残し、そのオブジェクトへのポインタ を返します。同じ関数への続く呼び出しは、同じオブジェクトを修正します。 関数 getgrent(), getgrent_r(), endgrent(), setgroupent() と setgrent() は、ネットワークの環境でほとんど役に立たず、可能であるなら、避けられるべ きです。getgrent() と getgrent_r() 関数は、複数のソースが nsswitch.conf(5) で指定されるなら、重複した情報を削除する試みを行ないませ ん。 FreeBSD 12.1 July 31, 2016 FreeBSD 12.1