path: root/tempfile.c
diff options
authorMichael Haggerty <>2015-08-10 09:47:44 (GMT)
committerJunio C Hamano <>2015-08-10 19:57:14 (GMT)
commit99397152a345011c99497b93f8518c7981e811a5 (patch)
tree94413563c2fcdfa2ccbcfd38ca29a3e4e3a2620d /tempfile.c
parent354ab1120665f691c17b21fdb04c4362c8088dfa (diff)
register_tempfile(): new function to handle an existing temporary file
Allow an existing file to be registered with the tempfile-handling infrastructure; in particular, arrange for it to be deleted on program exit. This can be used if the temporary file has to be created in a more complicated way than just open(). For example: * If the file itself needs to be created via the lockfile API * If it is not a regular file (e.g., a socket) Signed-off-by: Michael Haggerty <> Signed-off-by: Junio C Hamano <>
Diffstat (limited to 'tempfile.c')
1 files changed, 8 insertions, 0 deletions
diff --git a/tempfile.c b/tempfile.c
index 0b5d8ce..0af7ebf 100644
--- a/tempfile.c
+++ b/tempfile.c
@@ -137,6 +137,14 @@ int create_tempfile(struct tempfile *tempfile, const char *path)
return tempfile->fd;
+void register_tempfile(struct tempfile *tempfile, const char *path)
+ prepare_tempfile_object(tempfile);
+ strbuf_add_absolute_path(&tempfile->filename, path);
+ tempfile->owner = getpid();
+ tempfile->active = 1;
int mks_tempfile_sm(struct tempfile *tempfile,
const char *template, int suffixlen, int mode)