RMDIR(2) BSD RMDIR(2)
NAME
rmdir - remove a directory file
SYNOPSIS
int rmdir(path)
const char *path;
DESCRIPTION
rmdir removes a directory file whose name is given by path. The directory
must not have any entries other than dot (.) and dot-dot (..).
If the final component of the path argument names a symbolic link, rmdir
fails.
If the directory's link count becomes 0 (zero) and no process has the
directory open, the space occupied by the directory is freed and the
directory is no longer accessible. If one or more processes have the
directory open when the last link is removed, the . (dot) and .. (dot-
dot) entries, if present, are removed before the rmdir function returns,
and no new entries may be created in the directory. However, the
directory is not removed until all references to the directory have been
closed.
ERRORS
The named file is removed unless one or more of the following are true:
[ENOTDIR] A component of the path is not a directory.
[ENAMETOOLONG] A component of a pathname exceeded 255 characters, or an
entire pathname exceeded 1023 characters.
[ENOENT] The named directory does not exist or path points to an
empty string.
[ELOOP] Too many symbolic links were encountered in translating
the pathname.
[ENOTEMPTY] The named directory contains files other than dot (.)
and dot-dot (..) in it.
[EACCES] Search permission is denied for a component of the path
prefix.
[EACCES] Write permission is denied on the directory containing
the link to be removed.
[EBUSY] The directory to be removed is the mount point for a
mounted file system.
[EIO] An I/O error occurred while deleting the directory entry
or deallocating the inode.
[EROFS] The directory entry to be removed resides on a read-only
file system.
[ENOTDIR] The last component of the specified pathname is a
symbolic link.
SEE ALSO
mkdir(2), unlink(2)
DIAGNOSTICS
A 0 is returned if the remove succeeds; otherwise, a -1 is returned and
an error code is stored in the global location errno.
NOTES
The following errors, not returned under Domain/OS BSD, may be returned
under other implementations:
[EINVAL] The pathname contains a character with the high-order
bit set.
[EPERM] The directory containing the directory to be removed is
marked "sticky," and neither the containing directory
nor the directory to be removed are owned by the
effective user ID.