*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->OpenBSD man pages -> unlink (2)              



NAME    [Toc]    [Back]

     unlink - remove directory entry

SYNOPSIS    [Toc]    [Back]

     #include <unistd.h>

     unlink(const char *path);

DESCRIPTION    [Toc]    [Back]

     The 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 processes 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.

RETURN VALUES    [Toc]    [Back]

     Upon successful completion, a value of 0 is returned.   Otherwise, a value
     of -1 is returned and errno is set to indicate the error.

ERRORS    [Toc]    [Back]

     The unlink() succeeds unless:

     [ENOTDIR]     A component of the path prefix is not a directory.

                   A component of a pathname exceeded  {NAME_MAX}
                   or  an  entire  path  name exceeded {PATH_MAX}

     [ENOENT]      The named file does not exist.

     [EACCES]      Search permission is denied for a component of
the path

     [EACCES]       Write  permission  is denied on the directory
containing the
                   link to be removed.

     [ELOOP]       Too many symbolic links  were  encountered  in
translating the

     [EPERM]        The  named file is a directory and the effective user ID of
                   the process is not the superuser, or the  file
system containing
  the  file  does not permit the use of
unlink() on a

     [EPERM]       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.

     [EPERM]       The named file has its immutable or append-only flag set
                   (see chflags(2)).

     [EBUSY]        The  entry  to be unlinked is the mount point
for a mounted
                   file system.

     [EIO]         An I/O error occurred while deleting  the  directory entry or
                   deallocating the inode.

     [EROFS]        The  named  file  resides on a read-only file

     [EFAULT]      path points outside  the  process's  allocated
address space.

SEE ALSO    [Toc]    [Back]

     close(2), link(2), rmdir(2), symlink(7)

HISTORY    [Toc]    [Back]

     An unlink() function call appeared in Version 2 AT&T UNIX.

OpenBSD      3.6                           June      4,      1993
[ Back ]
 Similar pages
Name OS Title
unlink Tru64 Remove a directory entry
unlink HP-UX remove directory entry; delete file
rmdir IRIX remove a directory
efi_rmdir HP-UX remove an EFI directory
rmdir OpenBSD remove a directory file
rmdir FreeBSD remove a directory file
rmdir Tru64 Remove a directory file
rm OpenBSD remove directory entries
rm FreeBSD remove directory entries
unlink FreeBSD remove directory entries
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service