Updated: April 19, 2023 |
Default handler for _IO_STAT messages
#include <sys/iofunc.h> int iofunc_stat_default( resmgr_context_t *ctp, io_stat_t *msg, iofunc_ocb_t *ocb );
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
The iofunc_stat_default() function implements POSIX semantics for the client's stat() or fstat() call, which is received as an _IO_STAT message by the resource manager.
You can place this function directly into the resmgr_io_funcs_t table passed as the io_funcs argument to resmgr_attach(), at the stat position, or you can call iofunc_func_init() to initialize all of the functions to their default values.
The iofunc_stat_default() function calls:
The iofunc_stat_default() function returns (via the status argument to MsgReply()) the form of the stat structure.
io_stat_t structure
The io_stat_t structure holds the _IO_STAT message received by the resource manager:
struct _io_stat { uint16_t type; uint16_t combine_len; union { uint32_t zero; uint32_t format; }; }; typedef union { struct _io_stat i; struct __stat_t32_2001 o_t32_2001; struct __stat_t32_2008 o_t32_2008; struct __stat_t64_2008 o_t64_2008; struct stat o; } io_stat_t;
The I/O message structures are unions of an input message (coming to the resource manager) and an output or reply message (going back to the client).
The i member is a structure of type _io_stat that contains the following members:
The o* members are variants of a struct stat, corresponding to the requested form.
-1, to indicate to the resource manager library that it should return one part from the ctp->iov structure (see resmgr_context_t) to the client, or an errno value if an error occurred.
Safety: | |
---|---|
Cancellation point | No |
Interrupt handler | No |
Signal handler | Yes |
Thread | Yes |