Also, open file descriptors need to be closed before the temporary files
and the temporary directories can be removed, because only on Unix
- (excluding Cygwin) one can remove directories containing open files.
+ (excluding Cygwin) can one remove directories containing open files.
This module provides support for temporary directories and temporary files
inside these temporary directories. Temporary files without temporary
extern void unregister_temp_subdir (struct temp_dir *dir,
const char *absolute_dir_name);
-/* Remove the given ABSOLUTE_FILE_NAME and unregister it. */
-extern void cleanup_temp_file (struct temp_dir *dir,
- const char *absolute_file_name);
+/* Remove the given ABSOLUTE_FILE_NAME and unregister it.
+ Return 0 upon success, or -1 if there was some problem. */
+extern int cleanup_temp_file (struct temp_dir *dir,
+ const char *absolute_file_name);
-/* Remove the given ABSOLUTE_DIR_NAME and unregister it. */
-extern void cleanup_temp_subdir (struct temp_dir *dir,
- const char *absolute_dir_name);
+/* Remove the given ABSOLUTE_DIR_NAME and unregister it.
+ Return 0 upon success, or -1 if there was some problem. */
+extern int cleanup_temp_subdir (struct temp_dir *dir,
+ const char *absolute_dir_name);
-/* Remove all registered files and subdirectories inside DIR. */
-extern void cleanup_temp_dir_contents (struct temp_dir *dir);
+/* Remove all registered files and subdirectories inside DIR.
+ Return 0 upon success, or -1 if there was some problem. */
+extern int cleanup_temp_dir_contents (struct temp_dir *dir);
/* Remove all registered files and subdirectories inside DIR and DIR itself.
- DIR cannot be used any more after this call. */
-extern void cleanup_temp_dir (struct temp_dir *dir);
+ DIR cannot be used any more after this call.
+ Return 0 upon success, or -1 if there was some problem. */
+extern int cleanup_temp_dir (struct temp_dir *dir);
/* Open a temporary file in a temporary directory.
Registers the resulting file descriptor to be closed. */
Unregisters the previously registered file descriptor. */
extern int fwriteerror_temp (FILE *fp);
+/* Like close_stream.
+ Unregisters the previously registered file descriptor. */
+extern int close_stream_temp (FILE *fp);
+
#ifdef __cplusplus
}