gethostent のイテレーションの現在位置をリセットする
sethostent
は、gethostent
のイテレーションの現在位置をリセットします。
これにより、その後の gethostent
による
hosts ファイルの読み取りは先頭に戻ることになります。
引数 SYAYOPEN には真偽値 (通常は 1
または 0
) を与えなければいけませんが、
真 (1
) を与えると hosts ファイルを開いたままにします。
偽 (0
) を与えると hosts ファイルを閉じます。
sethostent
を使う場合は、その後に gethostent
を使うことが多いでしょうから、SYAYOPEN には 1
を指定することがほとんどでしょう。
次のサンプルコードは、gethostent
を使って
3 回ホスト情報を取り出します。
その後、sethostent
でイテレーションの現在位置をリセットしたうえで、
再度、gethostent
を使ってホスト情報を取り出します。
my $name = '';
# ホスト名を 3 回取り出す
$name = gethostent;
print $name, "\n"; # localhost
$name = gethostent;
print $name, "\n"; # DESKTOP-F89S1UF.
$name = gethostent;
print $name, "\n"; # printer.futomi.com
# gethostent のイテレーションの現在位置をリセットする
sethostent 1;
# 再度、ホスト名を取り出す
$name = gethostent;
print $name, "\n"; # localhost
このサンプルコードの出力結果を見てお分かりの通り、sethostent
によって
gethostent
によるイテレーションがリセットされていることが分かります。
なお、sethostent
は Windows では機能しませんので注意してください。