SICStus Streams
   With the SICStus Prolog C interface, the user can define his/her own
streams as well as from C read or write on the predefined streams.  The
stream interface is modeled after Quintus Prolog release 2.  It
provides:
     
- C functions to perform I/O on Prolog streams. 
This way you can use the same stream from Prolog and C code.
     
- User defined streams. You can define your own Prolog streams in C.
     
- Bidirectional streams. A SICStus stream supports reading or
writing or both.
     
- Hookable standard input/output/error streams.