[Previous] [Contents] [Next]

iofunc_unlink()

Verify that an entry can be unlinked

Synopsis:

#include <sys/iofunc.h>

int iofunc_unlink( resmgr_context_t* ctp,
                   io_unlink_t* msg,
                   iofunc_attr_t* attr,
                   iofunc_attr_t* dattr,
                   struct _client_info* info );

Library:

libc

Description:

The iofunc_unlink() function verifies that the msg specifies valid semantics for an unlink, and that the client is allowed to unlink the resource, as specified by a combination of who the client is (info), and the resource attributes attr, dattr, attr->uid and attr->gid.

The iofunc_unlink() function checks to see that if a directory entry is being removed, the directory is empty. The iofunc_unlink() function also updates the time stamps, and decrements the link count for the entry.

Returns:

EOK
Successful completion.
ENOTDIR
Attempt to unlink a nondirectory entry using directory semantics, (e.g. rmdir file).
EINVAL
Attempt to remove the "." directory.
ENOTEMPTY
Attempt to remove a directory that isn't empty.
EROFS
Attempt to remove an entry on a read-only filesystem.
EACCES
The client doesn't have permissions to do the operation.
EPERM
The group ID or owner ID didn't match.

Classification:

QNX 6

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

See also:

iofunc_check_access()


[Previous] [Contents] [Next]