Warning: main(/www/www/htdocs/style/globals.php) [function.main]: failed to open stream: No such file or directory in /www/www/docs/6.4.1/neutrino/lib_ref/i/iofunc_unlink.html on line 1
Warning: main() [function.include]: Failed opening '/www/www/htdocs/style/globals.php' for inclusion (include_path='.:/www/www/common:/www/www/php/lib/php') in /www/www/docs/6.4.1/neutrino/lib_ref/i/iofunc_unlink.html on line 1
Warning: main(/www/www/htdocs/style/header.php) [function.main]: failed to open stream: No such file or directory in /www/www/docs/6.4.1/neutrino/lib_ref/i/iofunc_unlink.html on line 8
Warning: main() [function.include]: Failed opening '/www/www/htdocs/style/header.php' for inclusion (include_path='.:/www/www/common:/www/www/php/lib/php') in /www/www/docs/6.4.1/neutrino/lib_ref/i/iofunc_unlink.html on line 8
Verify that an entry can be unlinked
#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 );
- ctp
- A pointer to a
resmgr_context_t
structure that the resource-manager library uses to pass context information
between functions.
- msg
- A pointer to the
io_unlink_t
structure that contains the message that the resource manager received;
see below.
- attr
- A pointer to the
iofunc_attr_t
structure that describes the characteristics of the resource.
- dattr
- NULL, or a pointer to the iofunc_attr_t
structure that describes the characteristics of the parent directory.
- info
- NULL, or a pointer to a _client_info
structure that contains information about the client.
For information about this structure, see
ConnectClientInfo().
libc
Use the -l c option to
qcc
to link against this library.
This library is usually included automatically.
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.
If a directory entry is being removed, iofunc_unlink() checks to
see that the directory is empty.
The iofunc_unlink() function also updates the time stamps,
and decrements the link count for the entry.
The io_unlink_t structure holds the _IO_CONNECT
message received by the resource manager:
typedef union {
struct _io_connect connect;
struct _io_connect_link_reply link_reply;
struct _io_connect_ftype_reply ftype_reply;
} io_unlink_t;
This message structure is a union of an input message (coming to the
resource manager),
_io_connect,
and two possible output or reply messages (going back to the client):
- 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.
QNX Neutrino
Safety: | |
Cancellation point |
No |
Interrupt handler |
No |
Signal handler |
Yes |
Thread |
Yes |
_io_connect,
_io_connect_link_reply,
_io_connect_ftype_reply,
ConnectClientInfo(),
iofunc_attr_t,
iofunc_check_access(),
resmgr_context_t
Writing a Resource Manager
Resource Managers
chapter of Getting Started with QNX Neutrino
Warning: main(/www/www/htdocs/style/footer.php) [function.main]: failed to open stream: No such file or directory in /www/www/docs/6.4.1/neutrino/lib_ref/i/iofunc_unlink.html on line 233
Warning: main() [function.include]: Failed opening '/www/www/htdocs/style/footer.php' for inclusion (include_path='.:/www/www/common:/www/www/php/lib/php') in /www/www/docs/6.4.1/neutrino/lib_ref/i/iofunc_unlink.html on line 233