| UNLINK(2) | System Calls Manual | UNLINK(2) | 
unlink, unlinkat —
#include <unistd.h>
int
  
  unlink(const
    char *path);
#include
  <fcntl.h>
int
  
  unlinkat(int
    fd, const char
    *path, int
  flag);
unlink() function removes the link named by
  path from its directory and decrements the link count of
  the file which was referenced by the link. If that decrement reduces the link
  count of the file to zero, and no process has the file open, then all
  resources associated with the file are reclaimed. If one or more process have
  the file open when the last link is removed, the link is removed, but the
  removal of the file is delayed until all references to it have been closed.
unlinkat() works the same way as
    unlink() except if path is
    relative. In that case, it is looked up from a directory whose file
    descriptor was passed as fd. Search permission is
    required on this directory. fd can be set to
    AT_FDCWD in order to specify the current
  directory.
unlinkat() will remove directories just
    like rmdir(2), provided
    AT_REMOVEDIR is set in
  flag.
unlink() and unlinkat()
  functions return the value 0 if successful; otherwise the
  value -1 is returned and the global variable
  errno is set to indicate the error.
unlink() and unlinkat()
  functions succeed unless:
EACCES]EBUSY]EFAULT]EIO]ELOOP]ENAMETOOLONG]NAME_MAX}
      characters, or an entire path name exceeded
      {PATH_MAX} characters.ENOENT]ENOTDIR]EPERM]unlink() on a directory, or the
      directory containing the file is marked sticky, and neither the containing
      directory nor the file to be removed are owned by the effective user
    ID.EROFS]In addition, unlinkat() will fail if:
EBADF]AT_FDCWD nor a
      valid file descriptor open for reading or searching.ENOTDIR]AT_REMOVEDIR set and path
      does not name a directory.ENOTEMPTY]AT_REMOVEDIR set
      and path is a directory that is not empty.unlink() function conforms to IEEE
  Std 1003.1-1990 (“POSIX.1”).
  unlinkat() conforms to IEEE Std
  1003.1-2008 (“POSIX.1”).
unlink() function call appeared in
  Version 1 AT&T UNIX.
| September 2, 2019 | NetBSD 10.0 |