zmq_ctx_set_ext - set extended context options


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


The zmq_ctx_set_ext() function shall set the option specified by the 'option_name' argument to the value pointed to by the 'option_value' argument for the 0MQ context pointed to by the 'context' argument. The 'option_len' argument is the size of the option value in bytes. For options taking a value of type "character string", the provided byte data should either contain no zero bytes, or end in a single zero byte (terminating ASCII NUL character).

The zmq_ctx_set_ext() function accepts all the option names accepted by zmq_ctx_set(). Options that make most sense to set using zmq_ctx_set_ext() instead of zmq_ctx_set() are the following options:

ZMQ_THREAD_NAME_PREFIX: Set name prefix for I/O threads

The 'ZMQ_THREAD_NAME_PREFIX' argument sets a string prefix to each thread created for the internal context’s thread pool. This option is only supported on Linux. This option is useful to help debugging done via "top -H" or "gdb"; in case multiple processes on the system are using ZeroMQ it is useful to provide through this context option an application-specific prefix to distinguish ZeroMQ background threads that belong to different processes. This option only applies before creating any sockets on the context.

Option value type

character string

Option value unit


Default value

empty string


The zmq_ctx_set_ext() function returns zero if successful. Otherwise it returns -1 and sets 'errno' to one of the values defined below.



The requested option option_name is unknown.


The provided 'context' is invalid.


Setting a prefix on internal ZMQ thread names:
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);



This page was written by the 0MQ community. To make a change please read the 0MQ Contribution Policy at