mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-12 14:20:13 +00:00
support: Add create_temp_file_in_dir
It allows created a temporary file in a specified directory.
(cherry picked from commit 60854f40ea
)
This commit is contained in:
parent
183709983d
commit
2d7720f316
@ -60,14 +60,12 @@ add_temp_file (const char *name)
|
||||
}
|
||||
|
||||
int
|
||||
create_temp_file (const char *base, char **filename)
|
||||
create_temp_file_in_dir (const char *base, const char *dir, char **filename)
|
||||
{
|
||||
char *fname;
|
||||
int fd;
|
||||
|
||||
fname = (char *) xmalloc (strlen (test_dir) + 1 + strlen (base)
|
||||
+ sizeof ("XXXXXX"));
|
||||
strcpy (stpcpy (stpcpy (stpcpy (fname, test_dir), "/"), base), "XXXXXX");
|
||||
fname = xasprintf ("%s/%sXXXXXX", dir, base);
|
||||
|
||||
fd = mkstemp (fname);
|
||||
if (fd == -1)
|
||||
@ -86,6 +84,12 @@ create_temp_file (const char *base, char **filename)
|
||||
return fd;
|
||||
}
|
||||
|
||||
int
|
||||
create_temp_file (const char *base, char **filename)
|
||||
{
|
||||
return create_temp_file_in_dir (base, test_dir, filename);
|
||||
}
|
||||
|
||||
char *
|
||||
support_create_temp_directory (const char *base)
|
||||
{
|
||||
|
@ -32,6 +32,13 @@ void add_temp_file (const char *name);
|
||||
*FILENAME. */
|
||||
int create_temp_file (const char *base, char **filename);
|
||||
|
||||
/* Create a temporary file in directory DIR. Return the opened file
|
||||
descriptor on success, or -1 on failure. Write the file name to
|
||||
*FILENAME if FILENAME is not NULL. In this case, the caller is
|
||||
expected to free *FILENAME. */
|
||||
int create_temp_file_in_dir (const char *base, const char *dir,
|
||||
char **filename);
|
||||
|
||||
/* Create a temporary directory and schedule it for deletion. BASE is
|
||||
used as a prefix for the unique directory name, which the function
|
||||
returns. The caller should free this string. */
|
||||
|
Loading…
Reference in New Issue
Block a user