Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
UNLINK(2)		   Linux Programmer's Manual		     UNLINK(2)

NAME
       unlink -	delete a name and possibly the file it refers to

SYNOPSIS
       #include	<unistd.h>

       int unlink(const	char *pathname);

DESCRIPTION
       unlink  deletes	a  name	from the filesystem. If	that name was the last
       link to a file and no processes have the	file open the file is  deleted
       and the space it	was using is made available for	reuse.

       If  the	name  was the last link	to a file but any processes still have
       the file	open the file will remain in existence until the last file de-
       scriptor	referring to it	is closed.

       If the name referred to a symbolic link the link	is removed.

       If the name referred to a socket, fifo or device	the name for it	is re-
       moved but processes which have the object open may continue to use it.

RETURN VALUE
       On success, zero	is returned.  On error,	-1 is returned,	and  errno  is
       set appropriately.

ERRORS
       EACCES Write access to the directory containing pathname	is not allowed
	      for the process's	effective uid, or one of  the  directories  in
	      pathname did not allow search (execute) permission.

       EPERM or	EACCES
	      The  directory  containing pathname has the sticky-bit (S_ISVTX)
	      set and the process's effective uid is neither the  uid  of  the
	      file to be deleted nor that of the directory containing it.

       EPERM (Linux only)
	      The filesystem does not allow unlinking of files.

       EPERM  The system does not allow	unlinking of directories, or unlinking
	      of directories requires  privileges  that	 the  current  process
	      doesn't have.  (This is the POSIX	prescribed error return.)

       EISDIR pathname	refers	to  a directory.  (This	is the non-POSIX value
	      returned by Linux	since 2.1.132.)

       EBUSY (not on Linux)
	      The file pathname	cannot be unlinked because it is being used by
	      the  system  or another process and the implementation considers
	      this an error.

       EFAULT pathname points outside your accessible address space.

       ENAMETOOLONG
	      pathname was too long.

       ENOENT A	component in pathname does not exist or	is a dangling symbolic
	      link, or pathname	is empty.

       ENOTDIR
	      A	 component  used as a directory	in pathname is not, in fact, a
	      directory.

       ENOMEM Insufficient kernel memory was available.

       EROFS  pathname refers to a file	on a read-only filesystem.

       ELOOP  Too many symbolic	links were encountered	in  translating	 path-
	      name.

       EIO    An I/O error occurred.

CONFORMING TO
       SVr4,  SVID,  POSIX,  X/OPEN,  4.3BSD.  SVr4 documents additional error
       conditions EINTR, EMULTIHOP, ETXTBSY, ENOLINK.

BUGS
       Infelicities in the protocol underlying NFS can	cause  the  unexpected
       disappearance of	files which are	still being used.

SEE ALSO
       link(2),	 rename(2), open(2), rmdir(2), mknod(2), mkfifo(3), remove(3),
       rm(1)

Linux 2.0.30			  1997-08-21			     UNLINK(2)

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | ERRORS | CONFORMING TO | BUGS | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=unlink&sektion=2&manpath=Red+Hat+9>

home | help