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 では機能しませんので注意してください。