X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fdata%2Fmake-file.h;h=a2bcc76eb11bdda3ec0917844f0c9b11c1175ced;hb=ed7a8820e2f7797fb61a9a5628c18169dcfd3513;hp=2e424fefdf8f4d8716617950c932d6bc2874b861;hpb=40214686362e348692b4b6bd05ed5522189525c0;p=pspp diff --git a/src/data/make-file.h b/src/data/make-file.h index 2e424fefdf..a2bcc76eb1 100644 --- a/src/data/make-file.h +++ b/src/data/make-file.h @@ -24,24 +24,24 @@ struct file_handle; /* Prepares to atomically replace a (potentially) existing file - by a new file, by creating a temporary file with the given - PERMISSIONS bits in the same directory as *FILE_NAME. + by a new file., by creating a temporary file with the given + PERMISSIONS bits. Special files are an exception: they are not atomically replaced but simply opened for writing. - If successful, stores the temporary file's name in *TMP_NAME - and a stream for it opened according to MODE (which should be + If successful, stores a stream for it opened according to MODE (which should be "w" or "wb") in *FP. Returns a ticket that can be used to commit or abort the file replacement. If neither action has yet been taken, program termination via signal will cause - *TMP_FILE to be unlinked. + all resources to be released. The return value must not be + explicitly freed. + + The caller is responsible for closing *FP */ - The caller is responsible for closing *FP, but *TMP_NAME is - owned by the callee. */ struct replace_file *replace_file_start (const struct file_handle *fh, const char *mode, mode_t permissions, - FILE **fp, char **tmp_name); + FILE **fp); /* Commits or aborts the replacement of a (potentially) existing file by a new file, using the ticket returned by