nn_close(3)
===========

NAME
----
nn_close - close an SP socket


SYNOPSIS
--------
*#include <nanomsg/nn.h>*

*int nn_close (int 's');*


DESCRIPTION
-----------
Closes the socket 's'. Any buffered inbound messages that were not yet received
by the application will be discarded. The library will try to deliver any
outstanding outbound messages for the time specified by _NN_LINGER_ socket
option. The call will block in the meantime.


RETURN VALUE
------------
If the function succeeds zero is returned. Otherwise, negative number is
returned and 'errno' is set to to one of the values defined below.


ERRORS
------
*EBADF*::
The provided socket is invalid.
*EINTR*::
Operation was interrupted by a signal. The socket is not fully closed yet.
Operation can be re-started by calling _nn_close()_ again.


EXAMPLE
-------

----
int s = nn_socket (AF_SP, NN_PUB);
assert (s >= 0);
int rc = nn_close (s);
assert (rc == 0);
----


SEE ALSO
--------
linknanomsg:nn_socket[3]
linknanomsg:nn_setsockopt[3]
linknanomsg:nanomsg[7]

AUTHORS
-------
Martin Sustrik <sustrik@250bpm.com>

