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


     #include <unistd.h>

     int unlink(const char *pathname));


     unlink deletes a name from the filesystem. If that 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.


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


     EFAULT  pathname  points  outside  your  accessible  address

     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, or pathname is a

             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.

     EISDIR  pathname refers to a directory.

     ENOMEM  Insufficient kernel memory was available.

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

     ELOOP   Too  many  symbolic  links   were   encountered   in
             translating pathname.

     EIO     An I/O error occurred.


     SVr4, SVID, POSIX, X/OPEN,  4.3BSD.   SVr4  documents  addi-
     tional  error  conditions EBUSY, EINTR, EMULTIHOP, ETXTBUSY,


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


     link(2), rename(2), open(2), rmdir(2), mknod(2),  mkfifo(3),
     remove(3), rm(1)