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