[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
6.14.9.3 Soft Ports
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.
- Scheme Procedure: make-soft-port pv modes
- C Function: scm_make_soft_port (pv, modes)
Return a port capable of receiving or delivering characters as specified by the modes string (see section open-file). pv must be a vector of length 5 or 6. Its components are as follows:
- procedure accepting one character for output
- procedure accepting a string for output
- thunk for flushing output
- thunk for getting one character
- thunk for closing port (not by garbage collection)
-
(if present and not
#f
) thunk for computing the number of characters that can be read from the port without blocking.
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
#f
if there is no useful operation for them to perform.If thunk 3 returns
#f
or aneof-object
(see eof-object? in The Revised^5 Report on Scheme) it indicates that the port has reached end-of-file. For example:(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>
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document was generated on April 20, 2013 using texi2html 5.0.