Не могу понять сообщение об ошибке с помощью mkdir

У меня есть фрагмент кода, который создает каталог из строки, cwd здесь строка, указывающая путь к каталогу. К сожалению, произошла ошибка, которая не позволила мне создать каталог, поэтому я использовал perror() и strerror() работает так, чтобы получить символическое имя ошибки.

struct stat st = {0};
if (stat(cwd, &st) == -1) {

    if(mkdir(cwd, 0700)==-1){
        int err=errno;
        perror("MKDIR ERROR");
        printf("%s \n",strerror(err));
    }

}

Моя проблема заключается в том, что perror() и strerror() выдают сообщение об ошибке "Нет такого файла или каталога". Я просмотрел справочную страницу mkdir здесь, но указанной ошибки нет в списке. ошибок, указанных на странице руководства. Я делаю что-то неправильно?


person Tanmay    schedule 08.03.2014    source источник
comment
Существует ли родительский каталог (то есть каталог, в который вы пытаетесь поместить новый каталог)?   -  person Joachim Isaksson    schedule 08.03.2014
comment
И является ли cwd допустимым путем (допустимым с точки зрения разрешенных символов)?   -  person deviantfan    schedule 08.03.2014


Ответы (1)


но указанной ошибки нет в списке ошибок, приведенном на странице руководства

Он четко показывает ENOENT, что вы и видите. Скорее всего один из компонентов вашего пути ("предков") не существует.

person cnicutar    schedule 08.03.2014
comment
Я рекомендую против linux.die.net. Я думаю, что лучшей альтернативой является man7.org/linux/man-pages/index.html< /а> - person cnicutar; 08.03.2014