Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (SunOS-5.10)
Apropos / Subsearch:
optional field

rmdir(2)                         System Calls                         rmdir(2)

       rmdir - remove a directory

       #include <unistd.h>

       int rmdir(const char *path);

       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.

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

       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

       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

       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

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

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

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

       tab()    allbox;    cw(2.750000i)|     cw(2.750000i)     lw(2.750000i)|
       lw(2.750000i).   ATTRIBUTE TYPEATTRIBUTE VALUE Interface StabilityStan-
       dard MT-LevelAsync-Signal-Safe

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

SunOS 5.10                        28 Dec 1996                         rmdir(2)