Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
NN_SEND(3)			  nanomsg 1.1.5 		      NN_SEND(3)

NAME
     nn_send - send a message

SYNOPSIS
     #include <nanomsg/nn.h>

     int nn_send (int s, const void *buf, size_t len, int flags);

DESCRIPTION
     The function will send a message containing the data from buffer pointed to
     by buf parameter to the socket s. The message will be len bytes long.

     Alternatively,  to  send  a buffer allocated by nn_allocmsg(3) function set
     the buf parameter to point to the pointer to the buffer and  len  parameter
     to  NN_MSG constant. In this case a successful call to nn_send will deallo-
     cate the buffer. Trying to deallocate it afterwards will  result  in  unde-
     fined behaviour.

     Which of the peers the message will be sent to is determined by the partic-
     ular socket type.

     The flags argument is a combination of the flags defined below:

     NN_DONTWAIT
	 Specifies  that the operation should be performed in non-blocking mode.
	 If the message cannot be sent straight away,  the  function  will  fail
	 with errno set to EAGAIN.

RETURN VALUE
     If  the  function succeeds, the number of bytes in the message is returned.
     Otherwise, -1 is returned and errno is set to to one of the values  defined
     below.

ERRORS
     EFAULT
	 buf  is  NULL	or  len is NN_MSG and the message pointer (pointed to by
	 buf) is NULL.

     EBADF
	 The provided socket is invalid.

     ENOTSUP
	 The operation is not supported by this socket type.

     EFSM
	 The operation cannot be performed on this socket at the moment  because
	 the  socket  is not in the appropriate state. This error may occur with
	 socket types that switch between several states.

     EAGAIN
	 Non-blocking mode was requested and the message cannot be sent  at  the
	 moment.

     EINTR
	 The  operation  was interrupted by delivery of a signal before the mes-
	 sage was sent.

     ETIMEDOUT
	 Individual socket types may define their own specific timeouts. If such
	 timeout is hit, this error will be returned.

     ETERM
	 The library is terminating.

EXAMPLE
     Using data directly:

	 nbytes = nn_send (s, "ABC", 3, 0);
	 assert (nbytes == 3);

     Using a pre-allocated message buffer:

	 void *msg = nn_allocmsg(3, 0);
	 strncpy(msg, "ABC", 3);
	 nbytes = nn_send (s, &msg, NN_MSG, 0);
	 assert (nbytes == 3);

SEE ALSO
     nn_recv(3) nn_sendmsg(3) nn_socket(3) nanomsg(7)

AUTHORS
     Martin Sustrik <sustrik@250bpm.com>

				   2018-10-15			      NN_SEND(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=nn_send&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help