Next: , Up: ref-iou-sfh   [Contents][Index]


4.6.7.1 Stream Objects

Each input and output stream is represented by a unique Prolog term, a stream object. In general, this term is of the form

user

Stands for the standard input or output stream, depending on context.

'$stream'(X)

A stream connected to some file. X is an integer.

Atom

A stream alias. Aliases can be associated with streams using the alias(Atom) option of open/4. There are also three predefined aliases:

user_input

An alias initially referring to the UNIX stdin stream. The alias can be changed with prolog_flag/3 and accessed by the C variable SP_stdin.

user_output

An alias initially referring to the UNIX stdout stream. The alias can be changed with prolog_flag/3 and accessed by the C variable SP_stdout.

user_error

An alias initially referring to the UNIX stderr stream. The alias can be changed with prolog_flag/3 and accessed by the C variable SP_stderr. This stream is used by the Prolog top level and debugger, and for all unsolicited messages by built-in predicates.

Stream objects are created by the predicate open/[3,4] ref-iou-sfh-opn and passed as arguments to those predicates that need them. Representation for stream objects to be used in C code is different. Use stream_code/2 to convert from one to the other when appropriate. See mpg-ref-stream_code.


Send feedback on this subject.