Удалить пустую директорию
#include <sys/types.h>#include <unistd.h>int rmdir( const char *path );
libc
Функция rmdir() удаляет указанную директорию. В директории не должно быть файлов или каталогов.
Если директория является текущей рабочей директорией любого процесса, rmdir() возвращает -1 и устанавливает для errno значение EINVAL . Если директория является корневым каталогом, действие этой функции зависит от файловой системы. |
Пространство, занимаемое директорией, освобождается, что делает ее недоступным, если ее счетчик ссылок становится равным нулю и ни один процесс не держит директорию открытой с ( opendir()). Если у процесса есть открытая директория при удалении последней ссылки, записи . и .. удаляются и никакие новые записи не могут более появиться в данной директории. В этом случае каталог будет удален, когда все ссылки на него будут закрыты с помощью ( closedir()).
При успешном завершении, rmdir() отмечает st_ctime и st_mtime для обновления в родительском каталоге.
PATH_MAX
, либо длина одного из компонентов пути превышает NAME_MAX
. Удаление директории /home/terry
:
#include <stdlib.h>#include <sys/types.h>#include <sys/stat.h>int main( void ){(void)rmdir( "/home/terry" );return (EXIT_SUCCESS);}
POSIX 1003.1
chdir(), chmod(), errno, fchdir(), getcwd(), mkdir(), stat()
Предыдущий раздел: Описание API системной библиотеки