unlink()
QNX SDP8.0C Library ReferenceAPIDeveloper
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 if:
- The path names a symbolic link; the removal doesn't affect the file or directory that the link goes to.
- The path doesn't name a symbolic link; after doing the removal,
unlink() decrements the link count of the file that the link refers to.
If the link count of the file becomes zero, and no process has the file open, then the space that the file occupies is freed, and no one can access the file anymore.
If one or more processes have the file open when the last link is removed, the link is removed, but the removal of the file is delayed until all references to it have been closed.
Returns:
- 0
- The operation succeeded.
- 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.
- ENOENT
- The named file doesn't exist, or path is an empty string.
- ENOSYS
- The unlink() function isn't implemented for the filesystem underlying the specified path.
- ENOTDIR
- A component of path isn't a directory or a symbolic link to one.
- 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:
Safety: | |
---|---|
Cancellation point | Yes |
Signal handler | Yes |
Thread | Yes |
Page updated: