Follow Techotopia on Twitter

On-line Guides
All Guides
eBook Store
iOS / Android
Linux for Beginners
Office Productivity
Linux Installation
Linux Security
Linux Utilities
Linux Virtualization
Linux Kernel
System/Network Admin
Scripting Languages
Development Tools
Web Development
GUI Toolkits/Desktop
Mail Systems
Eclipse Documentation

How To Guides
General System Admin
Linux Security
Linux Filesystems
Web Servers
Graphics & Desktop
PC Hardware
Problem Solutions
Privacy Policy




14.6 Deleting Files

You can delete a file with unlink or remove.

Deletion actually deletes a file name. If this is the file's only name, then the file is deleted as well. If the file has other remaining names (see Hard Links), it remains accessible under those names.

— Function: int unlink (const char *filename)

The unlink function deletes the file name filename. If this is a file's sole name, the file itself is also deleted. (Actually, if any process has the file open when this happens, deletion is postponed until all processes have closed the file.)

The function unlink is declared in the header file unistd.h.

This function returns 0 on successful completion, and -1 on error. In addition to the usual file name errors (see File Name Errors), the following errno error conditions are defined for this function:

Write permission is denied for the directory from which the file is to be removed, or the directory has the sticky bit set and you do not own the file.
This error indicates that the file is being used by the system in such a way that it can't be unlinked. For example, you might see this error if the file name specifies the root directory or a mount point for a file system.
The file name to be deleted doesn't exist.
On some systems unlink cannot be used to delete the name of a directory, or at least can only be used this way by a privileged user. To avoid such problems, use rmdir to delete directories. (In the GNU system unlink can never delete the name of a directory.)
The directory containing the file name to be deleted is on a read-only file system and can't be modified.

— Function: int rmdir (const char *filename)

The rmdir function deletes a directory. The directory must be empty before it can be removed; in other words, it can only contain entries for . and ...

In most other respects, rmdir behaves like unlink. There are two additional errno error conditions defined for rmdir:

The directory to be deleted is not empty.

These two error codes are synonymous; some systems use one, and some use the other. The GNU system always uses ENOTEMPTY.

The prototype for this function is declared in the header file unistd.h.

— Function: int remove (const char *filename)

This is the ISO C function to remove a file. It works like unlink for files and like rmdir for directories. remove is declared in stdio.h.

  Published under the terms of the GNU General Public License Design by Interspire