chiark / gitweb /
util: introduce mkdir_p()
[elogind.git] / util.c
diff --git a/util.c b/util.c
index 3fe59c8ebba4b1a425bb0e4ee6bd2860d2715f9b..29f48b08e3b918991350caa2794682a239b7ca5e 100644 (file)
--- a/util.c
+++ b/util.c
@@ -728,6 +728,20 @@ int mkdir_parents(const char *path, mode_t mode) {
         }
 }
 
+int mkdir_p(const char *path, mode_t mode) {
+        int r;
+
+        /* Like mkdir -p */
+
+        if ((r = mkdir_parents(path, mode)) < 0)
+                return r;
+
+        if (mkdir(path, mode) < 0)
+                return -errno;
+
+        return 0;
+}
+
 char hexchar(int x) {
         static const char table[16] = "0123456789abcdef";