resmgr_msgwritev()
QNX SDP8.0C Library ReferenceAPIDeveloper
Write a message to a client
Synopsis:
#include <sys/iofunc.h>
#include <sys/resmgr.h>
ssize_t resmgr_msgwritev( resmgr_context_t *ctp,
const iov_t *smsg,
int sparts,
size_t offset );
Arguments:
- ctp
- A pointer to a resmgr_context_t structure that the resource-manager library uses to pass context information between functions. This function extracts the rcvid from this structure.
- smsg
- An array of buffers that contains the data you want to write.
- sparts
- The number of elements in the array. This function doesn't let you write past the end of the sender's buffer; it returns the number of bytes actually written.
- offset
- An offset into the sender's buffer that indicates where you want to start writing the data.
Library:
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
Description:
The resmgr_msgwritev() function is a cover function for MsgWritev(), and performs the exact same functionality. It's provided for consistency with resmgr_msgwrite().
Note:
As a client may have overlapping send and reply buffers, you must complete all MsgRead*() operations from a
particular send (i.e. particular rcvid) before initiating any MsgWrite*() operations to that client.
Returns:
The number of bytes written, or -1 if an error occurred (errno is set).
Errors:
- EFAULT
- A fault occurred in the sender's address space when a server tried to access the sender's return message buffer.
- EOVERFLOW
- The sum of the IOV lengths exceeds SSIZE_MAX, or the number of parts exceeds 524288.
- ESRCH
- The thread indicated by ctp->rcvid doesn't exist or has had its connection detached.
- ESRVRFAULT
- A fault occurred when the kernel tried to access the buffers provided.
Classification:
Safety: | |
---|---|
Cancellation point | No |
Signal handler | Yes |
Thread | Yes |
Page updated: