getgrent のイテレーションの現在位置をリセットする
setgrent は、getgrent
のイテレーションの現在位置をリセットします。
これにより、その後の getgrent による
group ファイルの読み取りは先頭に戻ることになります。
次のサンプルコードは、getgrent を使って
3 回グループ情報を取り出します。
その後、setgrent でイテレーションの現在位置をリセットしたうえで、
再度、getgrent を使ってグループ情報を取り出します。
my $name = '';
# グループ名を 3 回取り出す
$name = getgrent;
print $name, "\n"; # root
$name = getgrent;
print $name, "\n"; # daemon
$name = getgrent;
print $name, "\n"; # bin
# getgrent のイテレーションの現在位置をリセットする
setgrent;
# 再度、グループ名を取り出す
$name = getgrent;
print $name, "\n"; # root
このサンプルコードの出力結果を見てお分かりの通り、setgrent によって
getgrent によるイテレーションがリセットされていることが分かります。
なお、setgrent は Windows では機能しませんので注意してください。