aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/fs.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/fs.c b/src/fs.c
index 2058720..ffb9135 100644
--- a/src/fs.c
+++ b/src/fs.c
@@ -468,4 +468,20 @@ char *human_readable_size(uint64_t n) {
}
return strdup(r);
-} \ No newline at end of file
+}
+
+/**
+ * Create a named temporary directory
+ * @param name
+ * @return success=path, failure=NULL
+ */
+char *spm_mkdtemp(const char *name) {
+ const char *template_unique = "XXXXXX";
+ char *tmpdir = NULL;
+ char *template = calloc(PATH_MAX, sizeof(char));
+
+ sprintf(template, "%s%s%s_%s", TMP_DIR, DIRSEPS, name, template_unique);
+ tmpdir = mkdtemp(template);
+ return tmpdir;
+}
+