ИМЯ¶
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@hsys.msk.ru> 1999-2000