KMRCLを眺める(179) FILE-SIZE — #:g1

Posted 2010-07-24 14:14:00 GMT

KMRCLを眺める、symbols.lispは前回で終了したので、今回は、KMRCLのos.lispからFILE-SIZEです。
CLでファイルのサイズをみるとなると、OPENして、FILE-LENGTHだと思いますが、FILE-SIZEの定義も

(defun file-size (file)
  (when (probe-file file)
    #+allegro (let ((stat (excl.osi:stat (namestring file))))
                (excl.osi:stat-size stat))
    #-allegro
    (with-open-file (in file :direction :input)
      (file-length in))))
となっています。
Allegro CLだと、excl.osi:stat-size というものがあるようで、ACLの場合はそちらを使うようになっています。
動作は、
(KL:FILE-SIZE "/usr/share/dict/words")
;⇒ 931708
というところ

comments powered by Disqus