Node:Soft Ports, Next:Void Ports, Previous:String Ports, Up:Port Types
A soft-port is a port based on a vector of procedures capable of accepting or delivering characters. It allows emulation of I/O ports.
| make-soft-port pv modes | Scheme Procedure |
| scm_make_soft_port (pv, modes) | C Function |
Return a port capable of receiving or delivering characters as
specified by the modes string (see open-file). pv must be a vector of length 5. Its
components are as follows:
For an output-only port only elements 0, 1, 2, and 4 need be
procedures. For an input-only port only elements 3 and 4 need
be procedures. Thunks 2 and 4 can instead be If thunk 3 returns (define stdout (current-output-port))
(define p (make-soft-port
(vector
(lambda (c) (write c stdout))
(lambda (s) (display s stdout))
(lambda () (display "." stdout))
(lambda () (char-upcase (read-char)))
(lambda () (display "@" stdout)))
"rw"))
(write p p) => #<input-output: soft 8081e20>
|