名称

zmq_msg_copy - 将消息内容复制到另一消息

概要

int zmq_msg_copy (zmq_msg_t '*dest', zmq_msg_t '*src');

说明

zmq_msg_copy() 函数应将由 'src' 引用的消息对象复制到由 'dest' 引用的消息对象。'dest' 原有的内容(如有)将被释放。在复制到 'dest' 之前,必须先对其进行初始化。

注意
实现可以选择不物理复制消息内容,而是让 'src' 和 'dest' 共享底层缓冲区。避免在使用 zmq_msg_copy() 复制消息后修改消息内容,这样做可能导致未定义行为。如果需要的是实际的硬拷贝(物理复制),可以使用 zmq_msg_init_buffer() 并包含消息内容来初始化新消息。
注意
切勿直接访问 'zmq_msg_t' 成员,而应始终使用 zmq_msg 系列函数。

返回值

zmq_msg_copy() 函数成功时应返回零。否则应返回 -1 并将 'errno' 设置为下列值之一。

错误

EFAULT

无效的消息。

示例

复制消息
zmq_msg_t msg;
zmq_msg_init_buffer (&msg, "Hello, World", 12);
zmq_msg_t copy;
zmq_msg_init (&copy);
zmq_msg_copy (&copy, &msg);
...
zmq_msg_close (&copy);
zmq_msg_close (&msg);

另请参阅

作者

本页面由 0MQ 社区编写。要做出修改,请阅读 0MQ 贡献政策: https://zeromq.cn/how-to-contribute/