rmdir(2)
rmdir --
remove a directory
Synopsis
#include <unistd.h>
int rmdir(const char path);
Description
rmdir
removes the directory named by the path name
pointed to by
path.
The directory must not have any entries other
than ``.'' and ``..'' and must not be the calling
process's current working directory.
The effective user ID of the calling process must have write
permission on the directory containing the directory to be removed.
If the parent directory has the save text on execution (``sticky'')
bit set [see
chmod(2)],
then the effective user ID of the calling process must own the parent
directory or the directory in it, or else must have permission to
write the directory to be removed.
If none of these is true, then the calling process must have
the P_OWNER privilege to delete the directory.
If the directory's link count becomes 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 ``.'' and ``..'' entries, if present,
are removed before rmdir returns and no new entries may be created in
the directory, but the directory is not removed until all references to the
directory have been closed.
If path is a symbolic link, it is not followed.
Files
Message catalog: uxcore.abi
Return values
On success, rmdir returns 0 and marks for update the st_ctime
and st_mtime fields of the parent directory.
On failure, rmdir returns -1 and sets errno to identify the error.
In the following conditions, rmdir fails and sets errno to:
EACCES-
Search permission is denied for a component of the path prefix.
EACCES-
Write permission is denied on the directory containing the directory
to be removed.
EACCES-
The parent directory has the sticky bit set and
the effective user ID of the caller does not own the parent
directory or the file in it, the caller does not have permission
to write the file, and the caller does not have the P_OWNER
privilege.
EBUSY-
The directory to be removed is the mount point for a mounted file system.
EBUSY-
The directory to be removed is the current directory.
EBUSY-
The directory to be removed is the ``.'' entry of a directory.
EEXIST-
The directory contains entries other than those for ``.'' and ``..''.
EFAULT-
path
points outside the process's allocated address space.
EIO-
An I/O error occurred while accessing the
file system.
ELOOP-
Too many symbolic links were encountered in translating path.
EMULTIHOP-
Components of path require hopping to
multiple remote machines and the file system does not allow it.
ENAMETOOLONG-
The length of the path argument exceeds {PATH_MAX}, or the
length of a path component exceeds {NAME_MAX} while
_POSIX_NO_TRUNC is in effect.
ENOTDIR-
A component of the path prefix is not a directory.
ENOENT-
The named directory does not exist or is the null pathname.
EROFS-
The directory entry to be removed is part of a
read-only file system.
ENOLINK-
path points to a remote machine, and the link
to that machine is no longer active.
References
directory(3C),
mkdir(1),
mkdir(2),
mkdirp(3G),
rm(1)
© 2004 The SCO Group, Inc. All rights reserved.
UnixWare 7 Release 7.1.4 - 25 April 2004