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

       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 or EACCES
              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.

       EPERM  The file pathname is a directory.

       EFAULT pathname  points  outside  your  accessible address
              space.

       ENAMETOOLONG
              pathname was too long.

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

       ENOTDIR

       EISDIR pathname refers to a directory.

       ENOMEM Insufficient kernel memory was available.

       EROFS  pathname refers to a file on a  read-only  filesys­
              tem.

       ELOOP  Too  many symbolic links were encountered in trans­
              lating 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, ETXTBSY,
       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)