| Did you know ... | Search Documentation: |
| Predicate set_system_IO/3 |
stdin. Out
becomes
stdout. If Error equals Out an
unbuffered stream is associated to the same destination and linked to stderr.
Otherwise Error is used for stderr. Output
buffering for
Out is set to line and buffering on Error is
disabled. The operating system I/O streams are shared across all
threads. The three streams must be related to a file descriptor
or a
domain_error file_stream is raised. See also
stream_property/2,
property file_no(Fd).
Where set_prolog_IO/3
rebinds the Prolog streams user_input,
user_output and user_error for a specific
thread providing a private interactive session, set_system_IO/3
rebinds the shared console I/O and also captures Prolog kernel events
(e.g., low-level debug messages, unexpected events) as well as messages
from foreign libraries that are directly written to stdout
or
stderr.
This predicate is intended to capture all output in situations where standard I/O is normally lost, such as when Prolog is running as a service on Windows.