Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
rmdir(2)			 System	Calls			      rmdir(2)

NAME
       rmdir - remove a	directory

SYNOPSIS
       #include	<unistd.h>

       int rmdir(const char *path);

DESCRIPTION
       The  rmdir()  function  removes	the  directory	named by the path name
       pointed to by path. The directory must not have any entries other  than
       "." and "..".

       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.

       Upon  successful	 completion  rmdir() marks for update the st_ctime and
       st_mtime	fields of the parent directory.

RETURN VALUES
       Upon successful completion, 0 is	returned. Otherwise, -1	 is  returned,
       errno  is  set  to  indicate  the error,	and the	named directory	is not
       changed.

ERRORS
       The rmdir() function will fail if:

       EACCES		       Search permission is denied for a component  of
			       the  path  prefix and {PRIV_FILE_DAC_SEARCH} is
			       not asserted in the effective set of the	 call-
			       ing process

			       Write  permission  is  denied  on the directory
			       containing the  directory  to  be  removed  and
			       {PRIV_FILE_DAC_WRITE} is	not asserted.

			       The  parent  directory has the S_ISVTX variable
			       set,  is	  not	owned	by   the   user,   and
			       {PRIV_FILE_OWNER} is not	asserted.

			       The  directory  is not owned by the user	and is
			       not writable by the user.

       EBUSY		       The directory to	be removed is the mount	 point
			       for a mounted file system.

       EEXIST		       The directory contains entries other than those
			       for "." and "..".

       EFAULT		       The path	argument points	to an illegal address.

       EINVAL		       The  directory  to  be  removed	is the current
			       directory, or the final component  of  path  is
			       ".".

       EIO		       An  I/O error occurred while accessing the file
			       system.

       ELOOP		       Too many	symbolic  links	 were  encountered  in
			       translating path.

       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.

       ENOENT		       The named directory does	not exist  or  is  the
			       null pathname.

       ENOLINK		       The  path  argument points to a remote machine,
			       and the connection to that machine is no	longer
			       active.

       ENOTDIR		       A  component of the path	prefix is not a	direc-
			       tory.

       EROFS		       The directory entry to be removed is part of  a
			       read-only file system.

ATTRIBUTES
       See attributes(5) for descriptions of the following attributes:

       +-----------------------------+-----------------------------+
       |      ATTRIBUTE	TYPE	     |	    ATTRIBUTE VALUE	   |
       +-----------------------------+-----------------------------+
       |Interface Stability	     |Standard			   |
       +-----------------------------+-----------------------------+
       |MT-Level		     |Async-Signal-Safe		   |
       +-----------------------------+-----------------------------+

SEE ALSO
       mkdir(1), rm(1),	mkdir(2), attributes(5), privileges(5),	standards(5)

SunOS 5.10			  28 Dec 1996			      rmdir(2)

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | ERRORS | ATTRIBUTES | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=rmdir&sektion=2&manpath=SunOS+5.10>

home | help