REMOVE(3)			     GNU			    REMOVE(3)



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

SYNOPSIS
       #include 

       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
       The errors that occur are those for unlink(2) and rmdir(2).

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)



Linux				  1994-07-13			    REMOVE(3)