Provided by: manpages-pt-dev_20040726-2_all bug

NAME

       remove - delete a name and possibly the file it refers to

SYNOPSIS

       #include <stdio.h>

       int remove(const char *pathname);

DESCRIPTION

       remove  deletes a name from the filesystem.  It calls unlink for files,
       and rmdir for directories.

       If the removed name was the last link to a file and no  processes  have
       the  file  open  the file is deleted and the space it was using is made
       available for reuse.

       If the name was the last link to a file but any  processes  still  have
       the  file  open  the  file will remain in existence until the last file
       descriptor referring to it is closed.

       If the name referred to a symbolic link the link is removed.

       If the name referred to a socket, fifo or device the  name  for  it  is
       removed  but  processes  which have the object open may continue to use
       it.

RETURN VALUE

       On success, zero is returned.  On error, -1 is returned, and  errno  is
       set appropriately.

ERRORS

       EFAULT pathname points outside your accessible address space.

       EACCES Write access to the directory containing pathname is not allowed
              for the process’s effective uid, or one of  the  directories  in
              pathname did not allow search (execute) permission.

       EPERM  The  directory  containing pathname has the sticky-bit (S_ISVTX)
              set and the process’s effective uid is neither the  uid  of  the
              file to be deleted nor that of the directory containing it.

       ENAMETOOLONG
              pathname was too long.

       ENOENT A  directory  component  in  pathname  does  not  exist  or is a
              dangling symbolic link.

       ENOTDIR
              A component used as a directory in pathname is not, in  fact,  a
              directory.

       ENOMEM Insufficient kernel memory was available.

       EROFS  pathname refers to a file on a read-only filesystem.

CONFORMING TO

       ANSI C, SVID, AT&T, POSIX, X/OPEN, BSD 4.3

BUGS

       Infelicities  in  the  protocol underlying NFS can cause the unexpected
       disappearance of files which are still being used.

NOTE

       Under libc4 and libc5, remove was an alias for unlink (and hence  would
       not remove directories).

SEE ALSO

       unlink(2),  rename(2), open(2), rmdir(2), mknod(2), mkfifo(3), link(2),
       rm(1), unlink(8).