add mkdir_maybe
authorJann Horn <jann@thejh.net>
Mon, 8 Jun 2015 20:40:13 +0000 (22:40 +0200)
committerJann Horn <jann@thejh.net>
Mon, 8 Jun 2015 20:40:13 +0000 (22:40 +0200)
fs.c

diff --git a/fs.c b/fs.c
index 3ecdc69..8ffaa3f 100644 (file)
--- a/fs.c
+++ b/fs.c
@@ -30,6 +30,14 @@ PUBLIC_FN int dir_foreach(char *path, dir_iterator *iter, void *data) {
   return feach_res;
 }
 
   return feach_res;
 }
 
+PUBLIC_FN int mkdir_maybe(const char *path, mode_t mode) {
+  int r = mkdir(path, mode);
+  if (r && errno != EEXIST) {
+    return r;
+  }
+  return 0;
+}
+
 HEADER // requires stdio.h
 HEADER #define FDIR_FOREACH(dir, element_name, code) {                                                     \
 HEADER   struct dirent element_name;                                                                       \
 HEADER // requires stdio.h
 HEADER #define FDIR_FOREACH(dir, element_name, code) {                                                     \
 HEADER   struct dirent element_name;                                                                       \
@@ -41,4 +49,4 @@ HEADER     if (__jh_fdir_foreach_res == NULL) goto end;
 HEADER     {code}                                                                                          \
 HEADER   }                                                                                                 \
 HEADER   end:;                                                                                             \
 HEADER     {code}                                                                                          \
 HEADER   }                                                                                                 \
 HEADER   end:;                                                                                             \
-HEADER }
\ No newline at end of file
+HEADER }