Node:Installing a New Stream, Next:Internal Representation, Previous:Low Level I/O Functions, Up:Defining a New Stream
A new stream is made accessible to Prolog using one of the
functions:
int SP_make_stream(
void *handle,
int (*sgetc)(),
int (*sputc)(),
int (*sflush)(),
int (*seof)(),
void (*sclrerr)(),
int (*sclose)(),
SP_stream **stream)
int SP_make_stream_context(
void *handle,
int (*sgetc)(),
int (*sputc)(),
int (*sflush)(),
int (*seof)(),
void (*sclrerr)(),
int (*sclose)(),
SP_stream **stream,
SP_atom option,
int context)
The functions return SP_SUCCESS on success and SP_ERROR
for invalid usage, and will:
SP_stream structure
SP_stream structure with default values
The handle pointer will be supplied as the handle
argument in the calls to the low level functions.
A stream without a close function will be treated as not closable
i.e. close/1 will not have any effect on it.
The SP_make_stream_context() function has two additional
arguments supplying information related to the handling of wide
characters; see WCX Foreign Interface.