replace_file_start: Now takes a file handle instead of a file name
[pspp] / src / data / make-file.h
index 19d33ebe76bfc070b0f28aed4c11bc61c89b7111..2e424fefdf8f4d8716617950c932d6bc2874b861 100644 (file)
@@ -1,5 +1,5 @@
 /* PSPP - a program for statistical analysis.
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2010 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>. */
 
-#ifndef MKFILE_H
-#define MKFILE_H
+#ifndef MAKE_FILE_H
+#define MAKE_FILE_H
 
+#include <stdbool.h>
+#include <stdio.h>
+#include <sys/types.h>
 
-/* Creates a temporary file and stores its name in *FILE_NAME and
-   a file descriptor for it in *FD.  Returns success.  Caller is
-   responsible for freeing *FILE_NAME. */
-int make_temp_file (int *fd, char **file_name);
-
-
-/* Creates a temporary file and stores its name in *FILE_NAME and
-   a file stream for it in *FP.  Returns success.  Caller is
-   responsible for freeing *FILE_NAME. */
-int make_unique_file_stream (FILE **fp, char **file_name) ;
-
+struct file_handle;
 
 /* Prepares to atomically replace a (potentially) existing file
    by a new file, by creating a temporary file with the given
@@ -46,7 +39,7 @@ int make_unique_file_stream (FILE **fp, char **file_name) ;
 
    The caller is responsible for closing *FP, but *TMP_NAME is
    owned by the callee. */
-struct replace_file *replace_file_start (const char *file_name,
+struct replace_file *replace_file_start (const struct file_handle *fh,
                                          const char *mode, mode_t permissions,
                                          FILE **fp, char **tmp_name);