ZMQ\_CTX\_NEW(3) 0MQ Manual ZMQ\_CTX\_NEW(3)

# [NAME](#NAME)

zmq\_ctx\_new - create new 0MQ context

# [SYNOPSIS](#SYNOPSIS)

**void \*zmq\_ctx\_new ();**

# [DESCRIPTION](#DESCRIPTION)

The *zmq\_ctx\_new()* function creates a new 0MQ *context*.

This function replaces the deprecated function [**zmq\_init**(3)](/man/os/zeromq/zmq_init.3).

**Thread safety**. A 0MQ *context* is thread safe and may be shared among as many application threads as necessary, without any additional locking required on the part of the caller.

# [RETURN VALUE](#RETURN_VALUE)

The *zmq\_ctx\_new()* function shall return an opaque handle to the newly created *context* if successful. Otherwise it shall return NULL and set *errno* to one of the values defined below.

# [ERRORS](#ERRORS)

**EMFILE**

The limit on the total number of open files has been reached and it wasn’t possible to create a new context.

**EMFILE**

The limit on the total number of open files in system has been reached and it wasn’t possible to create a new context.

# [SEE ALSO](#SEE_ALSO)

[**zmq**(7)](/man/os/zeromq/zmq.7) [**zmq\_ctx\_set**(3)](/man/os/zeromq/zmq_ctx_set.3) [**zmq\_ctx\_get**(3)](/man/os/zeromq/zmq_ctx_get.3) [**zmq\_ctx\_term**(3)](/man/os/zeromq/zmq_ctx_term.3)

# [AUTHORS](#AUTHORS)

This page was written by the 0MQ community. To make a change please read the 0MQ Contribution Policy at **http://www.zeromq.org/docs:contributing**.

08/29/2026 0MQ 4.3.5

---

Document: zmq_ctx_new(3) from zeromq 4.3.5-r13 (Chainguard OS)
Source: https://github.com/zeromq/libzmq
