ZeroMQ接口函數之 :zmq_msg_init_data - 從一個指定的存儲空間中初始化一個ZMQ消息對象的數據


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會取得指定數據的擁有權。

如果提供了回收功能函數ffnffn將會在data數據不再使用的時候被ZMQ調用一次,ZMQ會將zmq_msg_init_data()函數中的參數datahint參數傳遞給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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM