ZeroMQ 官方地址 :http://api.zeromq.org/4-1:zmq_msg_init_data
zmq_msg_init_data(3) ØMQ Manual - ØMQ/3.2.5
Name
zmq_msg_init_data - 從一個指定的存儲空間中初始化一個ZMQ消息對象的數據
Synopsis
typedef void (zmq_free_fn) (void *data, void *hint); int zmq_msg_init_data (zmq_msg_t *msg, void *data, size_t size, zmq_free_fn *ffn, void *hint);
Description
zmq_msg_init_data()函數會用data參數和size參數指定的數據對msg參數指定的ZMQ消息對象的內容進行初始化。ZMQ不會執行拷貝操作,並且ZMQ會取得指定數據的擁有權。
如果提供了回收功能函數ffn,ffn將會在data數據不再使用的時候被ZMQ調用一次,ZMQ會將zmq_msg_init_data()函數中的參數data和hint參數傳遞給ffn函數。
永遠不要直接對zmq_msg_t對象進行直接操作,而是要使用zmq_msg函數族進行操作。
zmq_msg_init()、zmq_msg_init_data()和zmq_msg_init_size()這三個函數是互斥的。永遠不要把一個zmq_msg_t對象初始化兩次。
Return value
函數zmq_msg_init_data()執行成功會返回0。否則返回 -1,並且設置errno的值為下列指定的值。
Errors
ENOMEM
存儲空間不足。
Example
使用一個指定的存儲空間對ZMQ消息對象進行初始化。
void my_free (void *data, void *hint) { free (data); } /* ... */
void *data = malloc (6); assert (data); memcpy (data, "ABCDEF", 6); zmq_msg_t msg; rc = zmq_msg_init_data (&msg, data, 6, my_free, NULL); assert (rc == 0);
See also
zmq_msg_init_size(3) zmq_msg_init(3) zmq_msg_close(3) zmq_msg_data(3) zmq_msg_size(3) zmq(7)
Authors
This ØMQ manual page was written by Martin Sustrik <sustrik@250bpm.com> and Martin Lucina <mato@kotelna.sk>.
Web site design and content is copyright (c) 2007-2012 iMatix Corporation. Contact us for professional support. Site content licensed under the Creative Commons Attribution-Share Alike 3.0 License. ØMQ is copyright (c) Copyright (c) 2007-2012 iMatix Corporation and Contributors. ØMQ is free software licensed under the LGPL. ØMQ, ZeroMQ, and 0MQ are trademarks of iMatix Corporation. Terms of Use — Privacy
Policy
更多 ZeroMQ API :http://www.cnblogs.com/fengbohello/p/4230135.html
翻譯:風波
mail : fengbohello@qq.com