Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ unlink(2) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

rm(1)

close(2)

link(2)

open(2)

rmdir(2)

remove(3C)

unistd(4)

unlink(2)                                                         unlink(2)

NAME
     unlink - remove directory entry

SYNOPSIS
     #include <unistd.h>

     int unlink(const char *path);

DESCRIPTION
     The unlink() function removes a link to a file. If path names a sym-
     bolic link, unlink() removes the symbolic link named by path and does
     not affect any file or directory named by the contents of the symbolic
     link. Otherwise, unlink() removes the link named by the pathname
     pointed to by path and decrements the link count of the file refer-
     enced by the link.

     When the file's link count becomes 0 and no process has the file open,
     the space occupied by the file will be freed and the file will no
     longer be accessible. If one or more processes have the file open when
     the last link is removed, the link will be removed before unlink()
     returns, but the removal of the file contents will be postponed until
     all references to the file are closed.

     The path argument must not name a directory unless the process has
     appropriate privileges and the implementation supports using unlink()
     on directories.

     Upon successful completion, unlink() will mark for update the stctime
     and stmtime fields of the parent directory. Also, if the file's link
     count is not 0, the stctime field of the file will be marked for
     update.

ERRORS
     The following error code descriptions are function-specific. You will
     find a general description in introprm2(2) or in errno(5).

     The named file is unlinked unless one or more of the following apply:

     EACCES        Search permission is denied for a component of the path
                   prefix.

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

     EACCES        The parent directory has the sticky bit set and the file
                   is not writable by the user; the user does not own the
                   parent directory and the user does not own the file.

     EBUSY         The file named by the path argument cannot be unlinked
                   because it is being used by the system or another pro-
                   cess and the implementation considers this an error, or
                   the file named by path is a named stream.



Page 1                       Reliant UNIX 5.44                Printed 11/98

unlink(2)                                                         unlink(2)

     EFAULT        path points outside the process' allocated address
                   space.

     EINTR         A signal was caught during the unlink() system call.

     ELOOP         Too many symbolic links were encountered in translating
                   path.

     EMULTIHOP     Components of path require hopping to multiple remote
                   machines and the file system does not allow it.

     ENAMETOOLONG  The length of the path argument exceeds PATHMAX or the
                   length of a path component exceeds NAMEMAX.

     ENOENT        The named file does not exist or is a null pathname. The
                   user is not a superuser.

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

     EPERM         The file named by path is a directory, and either the
                   calling process does not have appropriate privileges, or
                   the implementation prohibits using unlink() on direc-
                   tories.

     EPERM or EACCES
                   The SISVTX flag is set on the directory containing the
                   file referred to by the path argument and the caller is
                   not the file owner, nor is the caller the directory
                   owner, nor does the caller have appropriate privileges.

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

     ENOLINK       path points to a remote machine and the link to that
                   machine is no longer active.

     The unlink() function may fail and not unlink the file if:

     ENAMETOOLONG  Pathname resolution of a symbolic link produced an
                   intermediate result whose length exceeds PATHMAX.

     ETXTBSY       The entry to be unlinked is the last link to a pure pro-
                   cedure file that is being executed.

APPLICATION USAGE
     Applications should use rmdir() to remove a directory.

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




Page 2                       Reliant UNIX 5.44                Printed 11/98

unlink(2)                                                         unlink(2)

SEE ALSO
     rm(1), close(2), link(2), open(2), rmdir(2), remove(3C), unistd(4).




















































Page 3                       Reliant UNIX 5.44                Printed 11/98

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