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 <mhagger@alum.mit.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
354ab11206
commit
99397152a3
@ -137,6 +137,14 @@ int create_tempfile(struct tempfile *tempfile, const char *path)
|
|||||||
return tempfile->fd;
|
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,
|
int mks_tempfile_sm(struct tempfile *tempfile,
|
||||||
const char *template, int suffixlen, int mode)
|
const char *template, int suffixlen, int mode)
|
||||||
{
|
{
|
||||||
|
@ -92,6 +92,14 @@ struct tempfile {
|
|||||||
*/
|
*/
|
||||||
extern int create_tempfile(struct tempfile *tempfile, const char *path);
|
extern int create_tempfile(struct tempfile *tempfile, const char *path);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Register an existing file as a tempfile, meaning that it will be
|
||||||
|
* deleted when the program exits. The tempfile is considered closed,
|
||||||
|
* but it can be worked with like any other closed tempfile (for
|
||||||
|
* example, it can be opened using reopen_tempfile()).
|
||||||
|
*/
|
||||||
|
extern void register_tempfile(struct tempfile *tempfile, const char *path);
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* mks_tempfile functions
|
* mks_tempfile functions
|
||||||
|
Loading…
Reference in New Issue
Block a user