amqp (RabbitMQ) C ライブラリchar*
で長さN
を送信するには? すべてのサンプルで、ヌル終了スティンジではなく、ペアとその?のようなものを使用しています。amqp_basic_cstring(char*)
char *
length
2 に答える
1
APIにはありません。C文字列を構造体にラップするamqp_basic_cstring()
ことを意味していると思います。この関数を使用するときは、文字列をカウントするために内部的に使用するため、文字列をnullで終了する必要があるため、余分なバイトを割り当ててnullで終了します文字列。amqp_cstring_bytes()
amqp_t
strlen()
str[len-1]='\0';
もう1つのオプションは、C文字列をamqp_byte_t
自分でラップすることですが、とにかくそれを行うべきではないと思います:
amqp_bytes_t str;
str.len = length; //string length
str.bytes = cptr; //pointer to string
foo(..., str, ...);
于 2012-12-14T08:58:45.913 に答える
1
すべての C 文字列は、特殊文字 で終了します'\0'
。N
が文字列の長さよりも短い場合は、コピーを作成してその位置で終了し、N
通常の C 文字列として送信できます。
于 2012-12-14T08:49:46.957 に答える