unlink()

Remove a link to a file

Synopsis:

#include <unistd.h>

int unlink( const char * path );

Arguments:

path
The name of the file that you want to unlink.

Library:

libc

Use the -l c option to qcc to link against this library. This library is usually included automatically.

Description:

The unlink() function removes a link to a file:

Note: To remove a directory, call rmdir() or remove().

Returns:

0
The operation was successful.
Nonzero
The operation failed (errno is set).

Errors:

EACCES
Search permission is denied for a component of path, or write permission is denied on the directory containing the link to be removed.
EBUSY
The directory named by path cannot be unlinked because it's being used by the system or another process, and the target filesystem or resource manager considers this to be an error.
ENAMETOOLONG
The path argument exceeds PATH_MAX in length, or a pathname component is longer than NAME_MAX.
ENOENT
The named file doesn't exist, or path is an empty string.
ENOSYS
The unlink() function isn't implemented for the filesystem specified by path.
ENOTDIR
A component of path isn't a directory.
EPERM
The file named by path is a directory, and either the calling process doesn't have the appropriate privileges, or the target filesystem or resource manager prohibits using unlink() on directories.
EROFS
The directory entry to be unlinked resides on a read-only filesystem.

Examples:

#include <unistd.h>
#include <stdlib.h>

int main( void )
{
    if( unlink( "vm.tmp" ) ) {
        puts( "Error removing vm.tmp!" );
        return EXIT_FAILURE;
    }

    return EXIT_SUCCESS;
}

Classification:

POSIX 1003.1

Safety:  
Cancellation point Yes
Interrupt handler No
Signal handler Yes
Thread Yes