setpwent

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