Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ unlink(2) — sys5 — Apollo Domain/OS SR10.4.1

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

close(2)

link(2)

open(2)

rmdir(2)

UNLINK(2)                            SysV                            UNLINK(2)



NAME
     unlink - Remove a directory entry

SYNOPSIS
     int unlink (path)
     const char *path;

DESCRIPTION
     The unlink function removes the directory entry specified by the path
     argument and, if the entry is a hard link, decrements the link count of
     the file referenced by the link.

     When all links to a file are removed and no process has the file open or
     mapped, all resources associated with the file are reclaimed, and the
     file is no longer accessible. If one or more processes have the file open
     or mapped when the last link is removed, the link will be removed before
     the unlink function returns, but the removal of the file contents is
     postponed until all open or map references to the file are removed.

     If the path argument names a symbolic link, the symbolic link itself is
     removed.

     If the path argument names a directory, unlink fails.  unless the process
     has ROOT privileges.

     Upon successful completion, the unlink function marks for update the
     st_ctime and st_mtime fields of the directory which contained the link.
     If the file's link count is not 0 (zero), the st_ctime field of the file
     is also marked for update.

DIAGNOSTICS
     Upon successful completion, a value of 0 (zero) is returned. If the
     unlink function fails, a value of -1 is returned, the named file is not
     changed, and errno is set to indicate the error.

ERRORS
     If the unlink function fails, the named file is not unlinked and errno is
     set to one of the following values:

     [ENOENT]  The named file does not exist or the path argument points to an
               empty string.

     [EACCES]  Search permission is denied for a component of the path prefix,
               or write permission is denied on the directory containing the
               link to be removed.

     [EPERM]   The named file is a directory, and the process does not have
               ROOT privilege.

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

     [EROFS]   The entry to be unlinked is part of a read-only file system.

     [EFAULT]  The path argument is an invalid address.

     [ELOOP]   Too many links were encountered in translating path.

     [ENAMETOOLONG]
               The length of the path argument exceeds PATH_MAX or a pathname
               component is longer than NAME_MAX.
     [ENOTDIR] A component of the path prefix is not a directory.

     [ETXTBSY] The entry to be unlinked is the last link to a pure procedure
               (shared text) file that is being executed.

     [EINTR]   A signal was caught during the unlink system call.

     [EEXIST]  The file named by path is a directory, the process has ROOT
               privilege and the directory is not empty.

SEE ALSO
     close(2), link(2), open(2), rmdir(2)

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026