ИМЯ
mkdir − создать каталог
ОБЗОР
#include
<sys/stat.h>
#include <sys/types.h>
int mkdir(const char *pathname, mode_t mode);
ОПИСАНИЕ
mkdir пытается создать каталог, который называется pathname.
mode задает права доступа, которые получит свежесозданный каталог. Эти права стандартным образом модифицируются с помощью umask: права доступа оказываются равны (mode & ~umask).
Свежесозданный каталог принадлежит фактическому владельцу процесса. Если на родительском каталоге установлен флаг setgid, или файловая система смонтирована с семантикой групп в стиле BSD, то новый каталог унаследует группу-владельца от своего родительского каталога; в противном случае группой-владельцем станет фактическая группа процесса.
Если у родительского каталога установлен бит setgid, то он будет установлен также и у свежесозданного каталога.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
mkdir возвращает ноль при успешном завершении или −1, если произошла ошибка (в этом случае errno устанавливается должным образом).
ОШИБКИ
EPERM |
Файловая система, содержащая pathname, не поддерживает создание каталогов. EEXIST pathname уже существует (это не обязательно каталог). Эта ошибка также возникает, когда pathname является символической ссылкой, висячей или нет. | ||
EFAULT |
pathname указывает за пределы доступного адресного пространства. | ||
EACCES |
Родительский каталог не позволяет запись, или же один из каталогов, перечисленных в pathname, не позволяет поиск (выполнение). |
ENAMETOOLONG
pathname слишком длинно.
ENOENT |
Компонент пути pathname не существует или является висячей символической ссылкой. | ||
ENOTDIR |
Компонент пути, использованный как каталог в pathname, в действительности таковым не является. | ||
ENOMEM |
Ядру не хватило памяти. | ||
EROFS |
Файл находится на файловой системе, смонтированной только для чтения. | ||
ELOOP |
pathname является зацикленной символической ссылкой, то есть при подстановке возникает ссылка на неё саму. | ||
ENOSPC |
На устройстве, содержащем pathname, нет места для создания новой записи в каталоге. Это может произойти также, если исчерпана квота дискового пространства пользователя. |
СООТВЕТСТВИЕ СТАНДАРТАМ
SVr4, POSIX, BSD, SYSV, X/OPEN. SVr4 документирует дополнительные коды ошибок EIO, EMULTIHOP и ENOLINK; POSIX.1 не упоминает ELOOP.
В протоколе, на котором работает NFS, есть множество недоработок. Некоторые из них влияют на mkdir.
СМОТРИ ТАКЖЕ
mkdir(1), chmod(2), mount(2), rmdir(2), unlink(2)
ПЕРЕВОД
Copyright (C) Alexey Mahotkin <alexm [AT] hsys.ru> 1999-2000