unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (HP-UX-11.11)
Page:
Section:
Apropos / Subsearch:
optional field



 unlink(2)							   unlink(2)




 NAME
      unlink - remove directory entry; delete file

 SYNOPSIS
      #include <&lt&lt&lt;unistd.h>&gt&gt&gt;

      int unlink(const char *path);

 DESCRIPTION
      The unlink() system call removes the directory entry named by the path
      name pointed to by path.

      When all links to a file have been removed and no process has the file
      open, the space occupied by the file is freed and the file ceases to
      exist.  If one or more processes have the file open when the last link
      is removed, only the directory entry is removed immediately so that
      processes that do not already have the file open cannot access the
      file.  After all processes close their references to the file, if
      there are no more links to the file, the space occupied by the file is
      then freed and the file ceases to exist.

 RETURN VALUE
      unlink() returns the following values:

	    0	Successful completion.
	   -1	Failure.  errno is set to indicate the error.

 ERRORS
      If unlink() fails, errno is set to one of the following values:

	   [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 process does not have read/write access
			       permission to the parent directory.

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

	   [EFAULT]	       path points outside the process's allocated
			       address space.  The reliable detection of
			       this error is implementation dependent.

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

	   [ENAMETOOLONG]      The length of the specified path name exceeds
			       PATH_MAX bytes, or the length of a component



 Hewlett-Packard Company	    - 1 -   HP-UX Release 11i: November 2000






 unlink(2)							   unlink(2)




			       of the path name exceeds NAME_MAX bytes while
			       _POSIX_NO_TRUNC is in effect.

	   [ENOENT]	       The named file does not exist (for example,
			       path is null or a component of path does not
			       exist).

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

	   [EPERM]	       The directory containing the file to be
			       removed has the sticky bit set and neither
			       the containing directory nor the file to be
			       removed are owned by the effective user ID.

	   [EPERM]	       The named file is a directory and the
			       effective user ID is not a user with
			       appropriate privileges.

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

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

 WARNINGS
      If unlink() is used on a directory that is not empty (contains files
      other than .  and ..), the directory is unlinked, the files become
      orphans, and the directory link count is left with an inaccurate value
      unless they are linked by some other directory.

      If unlink() is used on a directory that is empty (contains only the
      files .  and ..), the directory is unlinked, but the parent
      directory's link count is left with an inaccurate value.

      In either of the above cases, the file system should be checked using
      fsck (see fsck(1M)).  To avoid these types of problems, use rmdir()
      instead (see rmdir(2)).

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

 STANDARDS CONFORMANCE
      unlink(): AES, SVID2, SVID3, XPG2, XPG3, XPG4, FIPS 151-2, POSIX.1









 Hewlett-Packard Company	    - 2 -   HP-UX Release 11i: November 2000