12.1.6 String Ports
String input and output ports do not need to be explicitly closed. The file-position procedure works for string ports in position-setting mode.
(open-input-bytes bstr [name]) → input-port? |
bstr : bytes? |
name : any/c = 'string |
Creates an input port that reads characters from bstr (see Byte Strings). Modifying bstr afterward does not affect the byte stream produced by the port. The optional name argument is used as the name for the returned port.
(open-input-string str [name]) → input-port? |
str : string? |
name : any/c = 'string |
Creates an input port that reads bytes from the UTF-8 encoding (see Encodings and Locales) of str. The optional name argument is used as the name for the returned port.
(open-output-bytes [name]) → output-port? |
name : any/c = 'string |
Creates an output port that accumulates the output into a byte string. The optional name argument is used as the name for the returned port.
(open-output-string [name]) → output-port? |
name : any/c = 'string |
The same as open-output-bytes.
| ||||||||||||||||||||||||||||
out : output-port? | ||||||||||||||||||||||||||||
reset? : any/c = #f | ||||||||||||||||||||||||||||
start-pos : nonnegative-exact-integer? = 0 | ||||||||||||||||||||||||||||
end-pos : nonnegative-exact-integer? = #f |
Returns the bytes accumulated in out so far in a freshly-allocated byte string (including any bytes written after the port’s current position, if any). the out port must be a string output port produced by open-output-bytes (or open-output-string) or a structure whose prop:output-port property refers to such an output port (transitively).
If reset? is true, then all bytes are removed from the port, and the port’s position is reset to 0; if reset? is #f, then all bytes remain in the port for further accumulation (so they are returned for later calls to get-output-bytes or get-output-string), and the port’s position is unchanged.
The start-pos and end-pos arguments specify the range of bytes in the port to return; supplying start-pos and end-pos is the same as using subbytes on the result of get-output-bytes, but supplying them to get-output-bytes can avoid an allocation. The end-pos argument can be #f, which corresponds to not passing a second argument to subbytes.
(get-output-string out) → string? |
out : output-port? |
Returns (bytes->string/utf-8 (get-output-bytes out) #\?).
Examples: |
> (define i (open-input-string "hello world")) |
> (define o (open-output-string)) |
> (get-output-string o) |
"hello" |