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