file-length
(file-length stream)
ファイルストリームが開いているファイルのバイト長を返します。判定できない場合は nil を返します。それ以外のストリームはすべて nil を返します。文字列ストリーム、ソケット、標準ストリーム、そしてすでにクローズされたハンドルが該当します。出力ストリームは先にフラッシュされるので、ディスクに届いた分ではなく書き込まれた分を数えます。
2つのWASMバックエンドは、ファイルストリームであっても常に nil を返します。そこではWASIの filestat 呼び出しをインポートしていないためです。nil はまさにCommon Lispが定める「長さを判定できない」場合の答えなので、移植性のある呼び出し側は失敗せずに長さ不明のフォールバックを通ります。インタプリタとJVMは実際の値を返します。
(with-open-file (in "data.txt")
(print (file-length in)))