;; File t1.scm (use posix) (print "(() (\"hello other") (flush-output) (sleep 1) (printf "process\"))") ;; File t2.scm (use posix) (let-values (((in out pid) (process "t1"))) (print (read in))) ;; Build csc t1.scm csc t2.scm ;; Run ./t1 Error: unterminated string,' rehto olleh' Call history: t1.scm:3: ##sys#call-with-values t1.scm:3: process t1.scm:4: read <-- ;; note the contents are my additions for debugging ;; ktrace on OpenBSD 7410 t1 RET sigprocmask ~0x10100 7410 t1 CALL read(0x3,0xcfbaa0e4,0x100) 7410 t1 GIO fd 3 read 18 bytes "(() ("hello other " 7410 t1 RET read 18/0x12 7410 t1 CALL sigprocmask(SIG_BLOCK,~0<>) 7410 t1 RET sigprocmask 0<> 7410 t1 CALL mprotect(0x2a662000,0x2000,0x3) 7410 t1 RET mprotect 0 7410 t1 CALL mprotect(0x2a662000,0x2000,0x1) [...] 7410 t1 CALL mprotect(0x29d46000,0x1000,0x1) 7410 t1 RET mprotect 0 7410 t1 CALL sigprocmask(SIG_SETMASK,0<>) 7410 t1 RET sigprocmask ~0x10100 7410 t1 CALL write(0x2,0x8a3d6964,0x6) 7410 t1 GIO fd 2 wrote 6 bytes " Error" 7410 t1 RET write 6 no reads in between