名称

zmq_ctx_get - 获取上下文选项

概要

int zmq_ctx_get (void '*context', int 'option_name');

描述

zmq_ctx_get() 函数将返回由 'option_name' 参数指定的选项。

zmq_ctx_get() 函数接受以下选项名称:

ZMQ_IO_THREADS: 获取 I/O 线程数

'ZMQ_IO_THREADS' 参数返回此上下文的 0MQ 线程池的大小。

ZMQ_MAX_SOCKETS: 获取最大套接字数

'ZMQ_MAX_SOCKETS' 参数返回此上下文允许的最大套接字数。

ZMQ_MAX_MSGSZ: 获取最大消息大小

'ZMQ_MAX_MSGSZ' 参数返回此上下文允许的最大消息大小。默认值是 INT_MAX。

ZMQ_ZERO_COPY_RECV: 获取消息解码策略

'ZMQ_ZERO_COPY_RECV' 参数返回消息解码器在接收消息时是否使用零拷贝策略。默认值为 1。注意:处于草稿状态,尚未在稳定版本中提供。

ZMQ_SOCKET_LIMIT: 获取可配置的最大套接字数

'ZMQ_SOCKET_LIMIT' 参数返回 zmq_ctx_set 将接受的最大套接字数。

ZMQ_IPV6: 获取 IPv6 选项

'ZMQ_IPV6' 参数返回此上下文的 IPv6 选项。

ZMQ_BLOCKY: 获取阻塞设置

'ZMQ_BLOCKY' 参数返回 1 表示上下文在终止时将阻塞,如果通过在所有新上下文中将 ZMQ_BLOCKY 设置为 false 来禁用“上下文终止时永久阻塞”策略,则返回 0。

ZMQ_THREAD_SCHED_POLICY: 获取 I/O 线程的调度策略

'ZMQ_THREAD_SCHED_POLICY' 参数返回内部上下文线程池的调度策略。

ZMQ_THREAD_NAME_PREFIX: 获取 I/O 线程的名称前缀

'ZMQ_THREAD_NAME_PREFIX' 参数获取为内部上下文线程池创建的每个线程的数字前缀。

ZMQ_MSG_T_SIZE: 在运行时获取 zmq_msg_t 大小

'ZMQ_MSG_T_SIZE' 参数返回运行时 zmq_msg_t 结构体的大小,其定义在公共头文件 include/zmq.h 中。这对于例如无法简单使用 sizeof() 的 FFI 绑定很有用。

返回值

如果成功,zmq_ctx_get() 函数返回一个大于等于 0 的值。否则,它返回 -1 并将 'errno' 设置为以下定义的值之一。

错误

EINVAL

请求的选项 option_name 未知。

EFAULT

提供的 'context' 无效。

示例

设置套接字数量限制
void *context = zmq_ctx_new ();
zmq_ctx_set (context, ZMQ_MAX_SOCKETS, 256);
int max_sockets = zmq_ctx_get (context, ZMQ_MAX_SOCKETS);
assert (max_sockets == 256);
关闭上下文死锁策略
zmq_ctx_set (ctx, ZMQ_BLOCKY, false);

参阅

作者

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