xref: /freebsd-14.2/lib/libc/sys/rmdir.2 (revision bb438c08)
1.\" Copyright (c) 1983, 1991, 1993
2.\"	The Regents of the University of California.  All rights reserved.
3.\"
4.\" Redistribution and use in source and binary forms, with or without
5.\" modification, are permitted provided that the following conditions
6.\" are met:
7.\" 1. Redistributions of source code must retain the above copyright
8.\"    notice, this list of conditions and the following disclaimer.
9.\" 2. Redistributions in binary form must reproduce the above copyright
10.\"    notice, this list of conditions and the following disclaimer in the
11.\"    documentation and/or other materials provided with the distribution.
12.\" 3. Neither the name of the University nor the names of its contributors
13.\"    may be used to endorse or promote products derived from this software
14.\"    without specific prior written permission.
15.\"
16.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
17.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
20.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26.\" SUCH DAMAGE.
27.\"
28.\"     @(#)rmdir.2	8.1 (Berkeley) 6/4/93
29.\"
30.Dd March 30, 2020
31.Dt RMDIR 2
32.Os
33.Sh NAME
34.Nm rmdir
35.Nd remove a directory file
36.Sh LIBRARY
37.Lb libc
38.Sh SYNOPSIS
39.In unistd.h
40.Ft int
41.Fn rmdir "const char *path"
42.Sh DESCRIPTION
43The
44.Fn rmdir
45system call
46removes a directory file
47whose name is given by
48.Fa path .
49The directory must not have any entries other
50than
51.Ql .\&
52and
53.Ql \&.. .
54.Sh RETURN VALUES
55.Rv -std rmdir
56.Sh ERRORS
57The named file is removed unless:
58.Bl -tag -width Er
59.It Bq Er ENOTDIR
60A component of the path is not a directory.
61.It Bq Er ENAMETOOLONG
62A component of a pathname exceeded 255 characters,
63or an entire path name exceeded 1023 characters.
64.It Bq Er ENOENT
65The named directory does not exist.
66.It Bq Er ELOOP
67Too many symbolic links were encountered in translating the pathname.
68.It Bq Er ENOTEMPTY
69The named directory contains files other than
70.Ql .\&
71and
72.Ql ..\&
73in it.
74.It Bq Er EACCES
75Search permission is denied for a component of the path prefix.
76.It Bq Er EACCES
77Write permission is denied on the directory containing the link
78to be removed.
79.It Bq Er EPERM
80The directory to be removed has its immutable, undeletable or append-only flag
81set, see the
82.Xr chflags 2
83manual page for more information.
84.It Bq Er EPERM
85The parent directory of the directory to be removed has its immutable or
86append-only flag set.
87.It Bq Er EPERM
88The directory containing the directory to be removed is marked sticky,
89and neither the containing directory nor the directory to be removed
90are owned by the effective user ID.
91.It Bq Er EINVAL
92The last component of the path is
93.Ql .\&
94or
95.Ql .. .
96.It Bq Er EBUSY
97The directory to be removed is the mount point
98for a mounted file system.
99.It Bq Er EIO
100An I/O error occurred while deleting the directory entry
101or deallocating the inode.
102.It Bq Er EINTEGRITY
103Corrupted data was detected while reading from the file system.
104.It Bq Er EROFS
105The directory entry to be removed resides on a read-only file system.
106.It Bq Er EFAULT
107The
108.Fa path
109argument
110points outside the process's allocated address space.
111.El
112.Sh SEE ALSO
113.Xr mkdir 2 ,
114.Xr unlink 2
115.Sh HISTORY
116The
117.Fn rmdir
118system call appeared in
119.Bx 4.2 .
120