ZMQ\_CLOSE(3) 0MQ Manual ZMQ\_CLOSE(3)

# [NAME](#NAME)

zmq\_close - close 0MQ socket

# [SYNOPSIS](#SYNOPSIS)

**int zmq\_close (void \*socket);**

# [DESCRIPTION](#DESCRIPTION)

The *zmq\_close()* function shall destroy the socket referenced by the *socket* argument. Any outstanding messages physically received from the network but not yet received by the application with *zmq\_recv()* shall be discarded. The behaviour for discarding messages sent by the application with *zmq\_send()* but not yet physically transferred to the network depends on the value of the *ZMQ\_LINGER* socket option for the specified *socket*.

*zmq\_close()* must be called exactly once for each socket. If it is never called, *zmq\_ctx\_term()* will block forever. If it is called multiple times for the same socket or if *socket* does not point to a socket, the behaviour is undefined.

**Note**

The default setting of *ZMQ\_LINGER* does not discard unsent messages; this behaviour may cause the application to block when calling *zmq\_ctx\_term()*. For details refer to [**zmq\_setsockopt**(3)](/man/os/zeromq/zmq_setsockopt.3) and [**zmq\_ctx\_term**(3)](/man/os/zeromq/zmq_ctx_term.3).

**Note**

This API will complete asynchronously, so not everything will be deallocated after it returns. See above for details about linger.

# [RETURN VALUE](#RETURN_VALUE)

The *zmq\_close()* function shall return zero if successful. Otherwise it shall return -1 and set *errno* to one of the values defined below.

# [ERRORS](#ERRORS)

**ENOTSOCK**

The provided *socket* was NULL.

# [SEE ALSO](#SEE_ALSO)

[**zmq\_socket**(3)](/man/os/zeromq/zmq_socket.3) [**zmq\_ctx\_term**(3)](/man/os/zeromq/zmq_ctx_term.3) [**zmq\_setsockopt**(3)](/man/os/zeromq/zmq_setsockopt.3) [**zmq**(7)](/man/os/zeromq/zmq.7)

# [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**.

10/26/2026 0MQ 4.3.5

---

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