#include <unistd.h>
#include <sys/stat.h>
#include <sys/types.h>
int mkdir(const char *path, mode_t mode);
Данный системный вызов – это создание каталога, первым параметром в нем задается относительный путь, вторым – режим доступа.
Успешный вызов mkdir() создает каталог path (параметр может содержать абсолютный или относительный путь) с битами разрешения mode (как они модифицированы текущим хначением umask) и возвращает значение 0. В случае ошибки mkdir() возвращает -1:
EACCESS – у текущего процесса нет прав на запись в родительский каталог, или один или несколько компонентов в пути path недоступны для поиска.
EEXIST – путь path уже существует (и не обязательно является каталогом).
EFAULT – параметр path содержит недопустимый указатель.
ELOOP – во время разрешения пути path ядру встретилось слишком много символических ссылок.
ENAMETOOLONG – слишком длинное значение path.
ENOENT – компонент пути path не существует или является символической ссылкой указывающей на несуществующий объект.
ENOMEM – недостаточно памяти ядра для выполнения данного запроса.
ENOSPC – на устройстве, где находится path, недостаточно пространства либо превышена дисковая квота для пользователя.
ENOTDIR – один или несколько компонентов пути path не являются каталогами.
EPERM – файловая система, которой принадлежит path, не поддерживает создание каталогов.
EROFS – файловая система, которой принадлежит path, подмонтирована с доступом только на чтение.