名称

zmq_ctx_set_ext - 设置扩展上下文选项

概要

int zmq_ctx_set_ext (void '*context', int 'option_name', const void '*option_value', size_t 'option_len');

描述

zmq_ctx_set_ext() 函数应为 'context' 参数指向的 0MQ 上下文设置 'option_name' 参数指定的选项,其值由 'option_value' 参数指向。'option_len' 参数是选项值的字节大小。对于类型为“字符串”的选项,提供的字节数据不应包含零字节,或以单个零字节(终止 ASCII NUL 字符)结尾。

zmq_ctx_set_ext() 函数接受 zmq_ctx_set() 接受的所有选项名称。以下选项使用 zmq_ctx_set_ext() 而非 zmq_ctx_set() 设置更具意义:

ZMQ_THREAD_NAME_PREFIX:设置 I/O 线程的名称前缀

'ZMQ_THREAD_NAME_PREFIX' 参数为内部上下文线程池创建的每个线程设置一个字符串前缀。此选项仅在 Linux 上受支持。此选项有助于通过 "top -H" 或 "gdb" 进行调试;如果系统上的多个进程正在使用 ZeroMQ,通过此上下文选项提供特定于应用程序的前缀来区分属于不同进程的 ZeroMQ 后台线程会很有用。此选项仅在上下文上创建任何套接字之前生效。

选项值类型

字符串

选项值单位

N/A

默认值

空字符串

返回值

如果成功,zmq_ctx_set_ext() 函数返回零。否则返回 -1 并将 'errno' 设置为以下定义的值之一。

错误

EINVAL

请求的选项 option_name 未知。

EFAULT

提供的 'context' 无效。

示例

设置内部 ZMQ 线程名称的前缀
void *context = zmq_ctx_new ();
const char prefix[] = "MyApp";
size_t prefixLen = sizeof(prefix);
zmq_ctx_set (context, ZMQ_THREAD_NAME_PREFIX, &prefix, &prefixLen);

char buff[256];
size_t buffLen = sizeof(buff);
int rc = zmq_ctx_get (context, ZMQ_THREAD_NAME_PREFIX, &buff, &buffLen);
assert (rc == 0);
assert (buffLen == prefixLen);

参见

作者

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