Here's a little script which seems to work. Creates a pipe and two child processes. One writes random numbers to the pipe, the other reads and prints them out.
Ed
(import (rnrs)
(ikarus))
(define pipe-a (pipe))
(fork (lambda (pid) pid)
(lambda ()
(let loop ()
(display (random 100) (vector-ref pipe-a 1))
(newline (vector-ref pipe-a 1))
(nanosleep 1 0)
(loop))))
(fork (lambda (pid) pid)
(lambda ()
(let loop ()
(display (read (vector-ref pipe-a 0)))
(newline)
(loop))))
