rmdir(2) удалить каталог

ОБЗОР

#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 могут приводить к неожиданному исчезновению каталогов, которые всё ещё используются.