unlink |
Command Library |
NAME
unlink - delete a name and possibly the file it refers toSYNOPSIS
#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 descriptor 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 removed 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 pathname.
- EIO
- An I/O error occurred.
CONFORMING TO
SVr4, SVID, POSIX, X/OPEN, 4.3BSD. SVr4 documents additional error conditions EINTR, EMULTIHOP, ETXTBSY, ENOLINK.http://linux.about.com/library/cmd/blcmdl2_unlink.htm