| 1 | #! /bin/sh |
|---|
| 2 | #| -*- scheme -*- |
|---|
| 3 | exec csi -s $0 "$@" |
|---|
| 4 | |# |
|---|
| 5 | |
|---|
| 6 | ;; dd if=/dev/zero of=/tmp/ok bs=3075 count=1 |
|---|
| 7 | |
|---|
| 8 | (use srfi-4) |
|---|
| 9 | (use ports) |
|---|
| 10 | |
|---|
| 11 | (define (read-bytevectorx! bv read-port) |
|---|
| 12 | (read-u8vector! #f bv read-port)) |
|---|
| 13 | |
|---|
| 14 | (let* ((bv (make-u8vector 1024)) |
|---|
| 15 | (read-port (open-input-file "/tmp/ok")) |
|---|
| 16 | (pd (make-input-port |
|---|
| 17 | (lambda () (read-char read-port)) |
|---|
| 18 | (lambda () (char-ready? read-port)) |
|---|
| 19 | (lambda () (close-input-port read-port))))) |
|---|
| 20 | |
|---|
| 21 | (let loop () |
|---|
| 22 | (let ((got (read-bytevectorx! bv pd))) |
|---|
| 23 | (display got) |
|---|
| 24 | (newline) |
|---|
| 25 | (if (> got 0) (loop))))) |
|---|
| 26 | |
|---|