Lines Matching refs:path
29 #include "path-util.h"
32 int mkdir_safe_internal(const char *path, mode_t mode, uid_t uid, gid_t gid, mkdir_func_t _mkdir) {
35 if (_mkdir(path, mode) >= 0)
36 if (chmod_and_chown(path, mode, uid, gid) < 0)
39 if (lstat(path, &st) < 0)
53 int mkdir_parents_internal(const char *prefix, const char *path, mode_t mode, mkdir_func_t _mkdir) {
57 assert(path);
59 if (prefix && !path_startswith(path, prefix))
63 e = strrchr(path, '/');
67 if (e == path)
72 assert(e-path < sizeof(buf));
73 memcpy(buf, path, e-path);
74 buf[e-path] = 0;
82 /* create every parent directory in the path, except the last component */
83 p = path + strspn(path, "/");
85 char t[strlen(path) + 1];
95 memcpy(t, path, e - path);
96 t[e-path] = 0;
107 int mkdir_parents(const char *path, mode_t mode) {
108 return mkdir_parents_internal(NULL, path, mode, mkdir);
111 int mkdir_p_internal(const char *prefix, const char *path, mode_t mode, mkdir_func_t _mkdir) {
116 r = mkdir_parents_internal(prefix, path, mode, _mkdir);
120 r = _mkdir(path, mode);
121 if (r < 0 && (errno != EEXIST || is_dir(path, true) <= 0))
127 int udev_mkdir_p(const char *path, mode_t mode) {
128 return mkdir_p_internal(NULL, path, mode, mkdir);