ИМЯ
rmdir - удалить
каталог
ОБЗОР
#include <unistd.h>
int rmdir(const char *pathname);
ОПИСАНИЕ
rmdir()
удаляет
каталог,
который
должен
быть пуст.
ВОЗВРАЩАЕМОЕ
ЗНАЧЕНИЕ
При
успешном
выполнении
возвращается
0. В случае
ошибки
возвращается
-1, а errno
устанавливается
в
соответствующее
значение.
ОШИБКИ
- EACCES
- Нет прав на
запись в
каталог,
содержащийся
в pathname, или в
одном из
каталогов
в pathname не
разрешён
поиск (см.
также path_resolution(7)).
- EBUSY
- В данный
момент pathname
используется
системой
или одним
из
процессов,
что
предотвращает
удаление. В
Linux это
означает,
что pathname
используется
в качестве
точки
монтирования
или
является
корневым
каталогом
вызвавшего
процесса.
- EFAULT
- Аргумент
pathname
указывает
за пределы
доступного
адресного
пространства.
- EINVAL
- pathname
содержит .
в качестве
последнего
компонента.
- ELOOP
- Во время
определения
pathname
встретилось
слишком
много
символьных
ссылок.
- ENAMETOOLONG
- pathname слишком
длинен.
- ENOENT
- Один из
каталогов
в pathname не
существует
или
является
повисшей
символьной
ссылкой.
- ENOMEM
- Недостаточное
количество
памяти
ядра.
- ENOTDIR
- pathname, или его
компонент,
используемый
в качестве
каталога в
pathname,
фактически,
не
является
каталогом.
- ENOTEMPTY
- pathname
содержит
элементы,
отличные
от . и .. ; или
последним
компонентом
pathname
является
... POSIX.1 также
позволяет
возвращать
EEXIST в такой
ситуации.
- EPERM
- На
каталоге,
содержащемся
в pathname,
установлен
закрепляющий
(sticky) бит (S_ISVTX) и
эффективный
идентификатор
пользователя
не
совпадает
с
пользовательским
ID файла или
каталога,
его
содержащего,
что
требуется
для
удаления, и
процесс не
имеет прав
(Linux: не имеет
мандата
CAP_FOWNER).
- EPERM
- Файловая
система,
содержащая
pathname, не
поддерживает
удаление
каталогов.
- EROFS
- pathname
указывает
на файл в
файловой
системе,
доступной
только для
чтения.
СООТВЕТСТВИЕ
СТАНДАРТАМ
POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD.
ДЕФЕКТЫ
Неточности
в
протоколе NFS
могут
приводить
к
неожиданному
исчезновению
каталогов,
которые
всё ещё
используются.