In Quintus Prolog releases prior to 3.0, QP_make_stream()
was the
function used to create a user-defined stream. Quintus Prolog 3.1 users should
use the method described in fli-ios-cps.
QP_make_stream()
creates an unbuffered Prolog stream. This is not
very efficient.
QP_make_stream()
can still be used in release 3, but may not be
supported in the future. Other old QP I/O functions that may not be
available in future release are:
QP_sprintf() QP_getc() QP_sgetc() QP_putc() QP_sputc() QP_sputs()
The naming convention of these functions does not match well with
their counterparts on C standard I/O library. For instance,
QP_sprintf()
performs formatted output on a Prolog stream as the
same operation for fprintf(3)
on a C standard I/O stream. It is
therefore renamed to be QP_fprintf()
in release 3. For
the same reason, QP_sgetc()
is renamed as QP_fgetc()
;
QP_sputc()
is renamed as QP_fputc()
. QP_getc()
and
QP_putc()
are now actually macros defined in
<quintus/quintus.h>
. However, all these functions are still
available in release 3. If a user's foreign code calls either
QP_getc()
or QP_putc()
without including
<quintus/quintus.h>
, the old version of the function will be
called. If <quintus/quintus.h>
is included, the call is
expanded to another function since both QP_getc()
and
QP_putc()
are macros in <quintus/quintus.h>
.