;; file i/o ;; XXX needs to catch errors (include "lib/core.scm") (include "lib/pair.scm") (include "lib/string.scm") (include "lib/io.scm") ;; copy file to stdout (let ((f (file/open-read "gc.c"))) (let loop ((buffer (file/read-buffer f))) (cond ((> (string-length buffer) 0) (write 1 buffer) (loop (file/read-buffer f))))) (file/close f)) ;; read a few characters... (let ((f (file/open-read "gc.c"))) (let loop ((n 10)) (cond ((= n 0) #t) (else (printn (file/read-char f)) (loop (- n 1))))) (file/close f)) ;; write a file by chars... (let ((f (file/open-write "thing.txt" #t #o644))) ;;(print-string "fd=") (printn f.fd) (file/write-char f #\H) (file/write-char f #\o) (file/write-char f #\w) (file/write-char f #\d) (file/write-char f #\y) (file/write-char f #\newline) (file/flush f) (file/close f) )