QNX操作系统信息传递
作者:网络转载 发布时间:[ 2013/8/12 10:48:30 ] 推荐标签:
Attr:
指定连接属性
返回值:
成功:连接ID
失败:-1
int asyncmsg_connect_detach( int coid );
参数:
coid :连接ID
备注:
从指定连接断开,所有在发送放一侧的消息被丢弃,如果为了在这之前所有的消息被发送完毕,在这之前调用asyncmsg_flush()接口。
返回值:
成功:EOK
失败:-1
int asyncmsg_flush( int coid,
int mode );
参数说明:
Coid:连接ID
Mode:
0,如果不想该函数阻塞则设置ASYNCMSG_FLUSH_NONBLOCK
返回值:
成功:EOK
失败:-1
int asyncmsg_connect_attr (
int coid,
struct _asyncmsg_connection_attr *old_attr,
const struct _asyncmsg_connection_attr *new_attr);
参数说明:
coid:连接ID
Old_attr:当前属性
new_attr:新的属性
返回值:
成功:EOK
失败:-1
int asyncmsg_put( int coid,
const void *buff,
size_t size,
unsigned handle),
int (*call_back) (
int err,
void* buf,
unsigned handle ));
int asyncmsg_putv( int coid,
const iov_t* iov,
int parts,
unsigned handle,
int (*call_back) (
int err,
void* buf,
unsigned handle ));
参数说明:
Coid:连接ID
Buff:消息缓冲
Size:消息大小
Iov:存放IOV消息的数组
Parts:IOV数组大小
Handle:用户自定义数据传递给回调函数,用于区分包类型
call_back:NULL或则一个函数指针,消息传递后调用,如果为NULL则
_asyncmsg_connection_attr 传递给asyncmsg_connect_attach被调用。
struct _asyncmsg_get_header *asyncmsg_get( int chid );
参数说明:
Chid:频道ID
说明:函数多接收5个异步消息,为了接收更多的消息,应该循环调用这个接口,知道返回NULL并且errno为EAGAIN的时候意味着读取完毕。
返回类型:
struct _asyncmsg_get_header {
struct _msg_info info;
int err;
iov_t *iov;
int parts;
struct _asyncmsg_get_header *next;
unsigned reserve[2];
};
说明:
Info:异步信号信息结构
err:错误状态
Ivo:指向消息体
Parts:ivo数组大小
Next:指向下一个信息结构体
返回值:
成功:信息链表
失败:NULL
void asyncmsg_free( void *buf);
参数说明:
buf:释放内存的指针
说明:
asyncmsg_get()调用促使释放内存
void *asyncmsg_malloc( size_t size );
说明:
函数为发送消息分配空间。

sales@spasvo.com