mq c语言函数,关于RabbitMQ的-C使用C语法问题

首先,我不太了解外支架,像这样的用法:

{

amqp_queue_declare_ok_t *r = amqp_queue_declare(conn, 1, amqp_empty_bytes, 0, 0, 0, 1,

amqp_empty_table);

die_on_amqp_error(amqp_get_rpc_reply(conn), "Declaring queue");

queuename = amqp_bytes_malloc_dup(r->queue);

if (queuename.bytes == NULL) {

fprintf(stderr, "Out of memory while copying queue name");

return 1;

}

}

其次,来看看这个:

{

while (1) {

amqp_rpc_reply_t res;

amqp_envelope_t envelope;

amqp_maybe_release_buffers(conn);

res = amqp_consume_message(conn, &envelope, NULL, 0);

if (AMQP_RESPONSE_NORMAL != res.reply_type) {

break;

}

printf("Delivery %u, exchange %.*s routingkey %.*s\n",

(unsigned) envelope.delivery_tag,

(int) envelope.exchange.len, (char *) envelope.exchange.bytes,

(int) envelope.routing_key.len, (char *) envelope.routing_key.bytes);

if (envelope.message.properties._flags & AMQP_BASIC_CONTENT_TYPE_FLAG) {

printf("Content-type: %.*s\n",

(int) envelope.message.properties.content_type.len,

(char *) envelope.message.properties.content_type.bytes);

}

amqp_destroy_envelope(&envelope);

}

}

在我看来,如果AMQP_RESPONSE_NORMAL = res.reply_type,while循环应该打破!但是,它没有。 break语句就像一个'continue'语句。显然,使用'继续'是行不通的。再次,我不知道为什么,因为据我所知,休息会导致退出while循环。

2014-01-17

Bob

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值