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

  man pages->IRIX man pages -> standard/unlink (2)              


unlink(2)							     unlink(2)

NAME    [Toc]    [Back]

     unlink - remove directory entry

C SYNOPSIS    [Toc]    [Back]

     #include <unistd.h>

     int unlink(const char *path<b>);

DESCRIPTION    [Toc]    [Back]

     unlink removes the	directory entry	named by the path name pointed to by
     path.  and	decrements the link count of the file referenced by the
     directory entry.  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, space occupied by the file is not released
     until all references to the file have been	closed.	 If path is a symbolic
     link, the symbolic	link is	removed.  Applications should use rmdir(2) to
     remove directories.

     Upon successful completion	unlink marks for update	the st_ctime and
     st_mtime fields of	the parent directory. Also, if the file's link count
     is	not zero, the st_ctime field of	the file is marked for update.

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

     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 and the process
			 does not have the super-user privilege.

     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.

     EACCES		 Write permission is denied on the file	named by path.

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

     EFAULT		 path points outside the process's allocated address

     EINTR		 A signal was caught during the	unlink system call.

     ELOOP		 Too many symbolic links were encountered in
			 translating path.

									Page 1

unlink(2)							     unlink(2)

     ENAMETOOLONG	 The length of the path	argument exceeds {PATH_MAX},
			 or the	length of a path component exceeds {NAME_MAX}
			 while _POSIX_NO_TRUNC is in effect.

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

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

     EPERM		 The named file	is a directory.

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

SEE ALSO    [Toc]    [Back]

     rm(1), close(2), link(2), open(2),	rename(2), rmdir(2).

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

									PPPPaaaaggggeeee 2222
[ 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