The predicates below can be used for switching between the implicit and the explicit stream-based I/O predicates.
- Set the current input stream to become Stream. Thus,
open(file, read, Stream), set_input(Stream)is equivalent to
- Set the current output stream to become Stream. See also with_output_to/2.
- Get the current input stream. Useful for getting access to the status predicates associated with streams.
- Get the current output stream.
The file handling predicates may be hooked to deal with
IRIs. An IRI starts with <scheme>
where <scheme> is a non-empty sequence of lowercase
ASCII letters. After detecting the scheme the file manipulation
predicates call a hook that is registered using register_iri_scheme/3.
Hooking the file operations using extensible IRI schemas allows us to place any resource that is accessed through Prolog I/O predicates on arbitrary devices such as web servers or the ZIP archive used to store program resources (see section 13.2). This is typically combined with file_search_path/2 declarations to switch between accessing a set of resources from local files, from the program resource database, from a web-server, etc.