예제 #1
0
파일: mkdir.c 프로젝트: glaubitz/systemd
int mkdir_p_internal(const char *prefix, const char *path, mode_t mode, mkdir_func_t _mkdir) {
        int r;

        /* Like mkdir -p */

        r = mkdir_parents_internal(prefix, path, mode, _mkdir);
        if (r < 0)
                return r;

        r = _mkdir(path, mode);
        if (r < 0 && (errno != EEXIST || is_dir(path, true) <= 0))
                return -errno;

        return 0;
}
예제 #2
0
파일: mkdir.c 프로젝트: andymg/android-udev
static int mkdir_p_internal(const char *prefix, const char *path, mode_t mode, bool apply) {
        int r;

        /* Like mkdir -p */

        r = mkdir_parents_internal(prefix, path, mode, apply);
        if (r < 0)
                return r;

        r = label_mkdir(path, mode, apply);
        if (r < 0 && (errno != EEXIST || is_dir(path) <= 0))
                return -errno;

        return 0;
}
예제 #3
0
파일: mkdir.c 프로젝트: Werkov/systemd
int mkdir_parents(const char *path, mode_t mode) {
        return mkdir_parents_internal(NULL, path, mode, mkdir_errno_wrapper);
}
예제 #4
0
int mkdir_parents_label(const char *path, mode_t mode) {
        return mkdir_parents_internal(NULL, path, mode, mkdir_label);
}
예제 #5
0
파일: mkdir.c 프로젝트: andymg/android-udev
int mkdir_parents_prefix(const char *prefix, const char *path, mode_t mode) {
        return mkdir_parents_internal(prefix, path, mode, true);
}
예제 #6
0
파일: mkdir.c 프로젝트: andymg/android-udev
int mkdir_parents(const char *path, mode_t mode) {
        return mkdir_parents_internal(NULL, path, mode, false);
}