The following allow string ports to be opened by analogy to R4RS file port facilities:
With string ports, the port-encoding is treated differently than other types of ports. When string ports are created, they do not inherit a character encoding from the current locale. They are given a default locale that allows them to handle all valid string characters. Typically one should not modify a string port’s character encoding away from its default.
Calls the one-argument procedure proc with a newly created output port. When the function returns, the string composed of the characters written into the port is returned. proc should not close the port.
Calls the one-argument procedure proc with a newly created input port from which string’s contents may be read. The value yielded by the proc is returned.
Calls the zero-argument procedure thunk with the current output port set temporarily to a new string port. It returns a string composed of the characters written to the current output.
Calls the zero-argument procedure thunk with the current input port set temporarily to a string port opened on the specified string. The value yielded by thunk is returned.
Take a string and return an input port that delivers characters
from the string. The port can be closed by
close-input-port, though its storage will be reclaimed
by the garbage collector if it becomes inaccessible.
Return an output port that will accumulate characters for
get-output-string. The port can be closed
by the procedure
close-output-port, though its storage
will be reclaimed by the garbage collector if it becomes
Given an output port created by
return a string consisting of the characters that have been
output to the port so far.
get-output-string must be used before closing port, once
closed the string cannot be obtained.
A string port can be used in many procedures which accept a port but which are not dependent on implementation details of fports. E.g., seeking and truncating will work on a string port, but trying to extract the file descriptor number will fail.