(rontolisp) docs
← cl パッケージの関数

open-stream-p

(open-stream-p stream)

ストリームが開いている間は t、閉じられた後は nil を返します。「開いていれば閉じる」というイディオムが二重クローズもリークも避けるために問い合わせる述語です。ファイル、文字列、ソケットのいずれのストリームでも、答えは全バックエンドで同じです。シノニムストリームは参照先の答えを返し、t 指定子は常に開いています。インタプリタと JVM はストリームテーブルから答え (close がエントリを削除します)、相手側から閉じられたソケットについても nil を返します。WASM バックエンドはディスクリプタが次の open で再利用されるため、close がストリームの値に付ける印を読みます。

クローズ後の挙動はファイルを触るため、静的に示します:

(let ((s (open "f.txt" :direction :input)))
  (open-stream-p s)   ; => T
  (close s)
  (open-stream-p s))  ; => NIL