unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (OSF1-V5.1-alpha)
Page:
Section:
Apropos / Subsearch:
optional field



unlink(2)							    unlink(2)



NAME
  unlink - Removes a directory entry

SYNOPSIS

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

  int unlink (
	  const	char *path );

STANDARDS

  Interfaces documented	on this	reference page conform to industry standards
  as follows:

  unlink():  XSH5.0

  Refer	to the standards(5) reference page for more information	about indus-
  try standards	and associated tags.

PARAMETERS

  path	    Specifies the directory entry to be	removed.

DESCRIPTION

  When the directory entry is a	hard link, the unlink()	function removes it
  and decrements the link count	of the file referenced by the link.  When the
  directory entry is a symbolic	link, the unlink() function removes the	sym-
  bolic	link and does not affect any file or directory named by	the contents
  of the symbolic 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 is removed before the
  unlink() function returns, but the removal of	the file contents is post-
  poned	until all open or map references to the	file are removed.

  A hard link to a directory cannot be unlinked.

  A process must have write access to the parent directory of the file to be
  unlinked with	respect	to all access policies.

  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.

  System V Compatibility

  [Tru64 UNIX]	Any attempt to unlink non-empty	directories in the System V
  habitat will cause the unlink	call to	fail and set errno to ENOTEMPTY, even
  if the process has superuser privileges.  This error behavior	is provided
  in the System	V habitat to comply with the SVID-2 industry standard.




RETURN VALUES

  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
  may be set to	one of the following values:

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

  [EACCES]  The	S_ISVTX	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 priviliges.

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

  [EBUSY]   The	file named by path is a	named STREAM.

  [EFAULT]  The	path parameter is an invalid address.

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

  [ENAMETOOLONG]
	    The	length of the path parameter exceeds PATH_MAX or a pathname
	    component is longer	than NAME_MAX.

  [ENAMETOOLONG]
	    Pathname resolution	 of a symbolic link produced an	intermediate
	    result whose length	exceeds	PATH_MAX.

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

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

  [EPERM]   The	named file is a	directory.



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

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

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

  [Tru64 UNIX]	For NFS	file access, if	the link() function fails, errno may
  also be set to one of	the following values:

  [EISDIR]  Indicates either that the request was for a	write access to	a
	    file but the specified filename was	actually a directory, or that
	    the	function was trying to rename a	directory as a file.

  [ENFILE]  Indicates either that the system file table	is full, or that
	    there are too many files currently open in the system.

  [ESTALE]  Indicates a	stale NFS file handle.	A client cannot	delete a link
	    because the	server has unmounted or	unexported the remote direc-
	    tory; or the directory that	contains an file was either unmounted
	    or unexported by the server.

RELATED	INFORMATION

  Commands: link(1), unlink(1),	rm(1)

  Functions: close(2), link(2),	open(2), rmdir(2)

  Standards: standards(5)