summaryrefslogtreecommitdiff
path: root/lib/clean-temp.h
diff options
context:
space:
mode:
authorBruno Haible <bruno@clisp.org>2020-07-04 15:18:20 +0200
committerBruno Haible <bruno@clisp.org>2020-07-04 15:21:50 +0200
commit7ee75d845dbbd2791c99668fef18438652113a00 (patch)
tree60378869f7ac3a656fdaed9abd28ea174447827f /lib/clean-temp.h
parent629e348003127a1d780fc2edf4f5d38f42e09fb9 (diff)
downloadgnulib-7ee75d845dbbd2791c99668fef18438652113a00.tar.gz
clean-temp: Add support for temporary files with unpredictable names.
* lib/clean-temp.h (gen_register_open_temp): New declaration. * lib/clean-temp.c: Include tempname.h. (gen_register_open_temp): New function. * modules/tempname (configure.ac): Define a module indicator.
Diffstat (limited to 'lib/clean-temp.h')
-rw-r--r--lib/clean-temp.h17
1 files changed, 13 insertions, 4 deletions
diff --git a/lib/clean-temp.h b/lib/clean-temp.h
index c828d72e58..087db452d1 100644
--- a/lib/clean-temp.h
+++ b/lib/clean-temp.h
@@ -150,26 +150,35 @@ extern int open_temp (const char *file_name, int flags, mode_t mode,
extern FILE * fopen_temp (const char *file_name, const char *mode,
bool delete_on_close);
+/* Open a temporary file, generating its name based on FILE_NAME_TMPL.
+ FILE_NAME_TMPL must match the rules for mk[s]temp (i.e. end in "XXXXXX",
+ possibly with a suffix). The name constructed does not exist at the time
+ of the call. FILE_NAME_TMPL is overwritten with the result.
+ Registers the file for deletion.
+ Opens the file, with the given FLAGS and mode 0600.
+ Registers the resulting file descriptor to be closed. */
+extern int gen_register_open_temp (char *file_name_tmpl, int suffixlen, int flags);
+
/* Close a temporary file.
- FD must have been returned by open_temp.
+ FD must have been returned by open_temp or gen_register_open_temp.
Unregisters the previously registered file descriptor. */
extern int close_temp (int fd);
/* Close a temporary file.
FP must have been returned by fopen_temp, or by fdopen on a file descriptor
- returned by open_temp.
+ returned by open_temp or gen_register_open_temp.
Unregisters the previously registered file descriptor. */
extern int fclose_temp (FILE *fp);
/* Like fwriteerror.
FP must have been returned by fopen_temp, or by fdopen on a file descriptor
- returned by open_temp.
+ returned by open_temp or gen_register_open_temp.
Unregisters the previously registered file descriptor. */
extern int fwriteerror_temp (FILE *fp);
/* Like close_stream.
FP must have been returned by fopen_temp, or by fdopen on a file descriptor
- returned by open_temp.
+ returned by open_temp or gen_register_open_temp.
Unregisters the previously registered file descriptor. */
extern int close_stream_temp (FILE *fp);