- Documentation
- Reference manual
- Built-in Predicates
- File System Interaction
- access_file/2
- exists_file/1
- file_directory_name/2
- file_base_name/2
- same_file/2
- exists_directory/1
- delete_file/1
- rename_file/2
- size_file/2
- time_file/2
- absolute_file_name/2
- absolute_file_name/3
- is_absolute_file_name/1
- file_name_extension/3
- directory_files/2
- expand_file_name/2
- prolog_to_os_filename/2
- read_link/3
- tmp_file/2
- tmp_file_stream/3
- make_directory/1
- delete_directory/1
- working_directory/2
- chdir/1
- File System Interaction
- Built-in Predicates
- Packages
- Reference manual
Availability:built-in
binary
. Stream is the output stream. If the OS
supports it, the created file is only accessible to the current user. If
the OS supports it, the file is created using the open()-flag O_EXCL
,
which guarantees that the file did not exist before this call. This
predicate is a safe replacement of tmp_file/2.
Note that in those cases where the temporary file is needed to store
output from an external command, the file must be closed first. E.g.,
the following downloads a file from a URL to a temporary file and opens
the file for reading (on Unix systems you can delete the file for
cleanup after opening it for reading):
open_url(URL, In) :- tmp_file_stream(text, File, Stream), close(Stream), process_create(curl, ['-o', File, URL], []), open(File, read, In), delete_file(File). % Unix-only
Temporary files created using this call are removed if the Prolog process terminates gracefully. Calling delete_file/1 using FileName removes the file and removes the entry from the administration of files-to-be-deleted.