Node:Installing a New Stream, Next:The Internal Representation of a Prolog Stream, 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.