NAME

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


SYNOPSIS

     #include <unistd.h>

     int unlink(const char *pathname));


DESCRIPTION

     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.


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

     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.

     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.


CONFORMING TO

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


BUGS

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


SEE ALSO

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