5部 関数リファレンス

close

2011年9月20日
close FILEHANDLE

引数で指定したファイルやパイプをクローズします。パイプのクローズでは、パイプ上で実行されているプロセスの完了を待ちます。引数が省略された場合、現在選択されているファイルハンドルをクローズします。

クローズしてすぐにまた、同じファイルハンドルに対してオープンを行なう場合には、openが自動的にcloseを行ないますので、closeを使わなくても問題ありません。ただし、明示的にcloseを使ったときにのみ入力ファイルの行番号 (特殊変数$.) のリセットが行なわれます。

プロセスについては用語集「プロセス」を参照してください。

closeの使い方

ファイルハンドルがパイプつきオープンなら、closeはシステムコールが失敗したり、プログラムが非ゼロのステータスで終了した場合にも偽を返します (プログラムが非ゼロで終了しただけの場合は、$!が 0 にセットされます)。パイプのクローズでは、パイプ上で実行されているプロセスの完了を待ちます。また自動的にコマンドのステータス値を$?に設定します。

# sort へのパイプ
open(OUTPUT, '|sort >foo');
...
# sort の完了後にクローズ
close(OUTPUT);

Comment

コメントを残す

メールアドレスが公開されることはありません。

リズムファクトリーはホームページの制作会社です。
ホームページ制作に関するご要望・ご相談はこちらからどうぞ。