getgrent

システムのグループ情報を走査する

構文

解説

getgrent はシステムのグループエントリーファイル(グループの登録情報を格納したファイルで通常は /etc/group)にアクセスし、グループ情報を返します。引数はありません。

#    0      1        2     3
my ( $name, $passwd, $gid, $members ) = getgrent;
No. 変数 意味 実例
0 $name グループ名 adm
1 $passwd パスワード (未使用のため通常はダミーの値が入る) x
2 $gid グループID 5
3 $members グループに所属するユーザー名のリスト (スペース区切り) syslog futomi

getgrent をいきなり呼び出すと、多くの環境では root グループの情報が返ってくるでしょう。 そのため、getgrent を単独で使うことはありません。 getgrent はイテレーターとして機能しますので、一般的には while ループで使われます。 以下のサンプルコードは、システムに登録されたグループ名を一覧出力します。

while ( my @info = getgrent ) {
    print $info[0], "\n";
}

getgrent はスカラーコンテキストであれば、最初の項目であるグループ名のみを返します。 そのため、前述のサンプルコードは次のように書き換えても同じです。

while ( my $name = getgrent ) {
    print $name, "\n";
}

なお、getpwent は Windows では機能しませんので注意してください。