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

FreeBSD Manual Pages

  
 
  

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

NAME
     nn_allocmsg - allocate a message

SYNOPSIS
     #include <nanomsg/nn.h>

     void *nn_allocmsg (size_t size, int type);

DESCRIPTION
     Allocate  a  message of the specified size to be sent in zero-copy fashion.
     The content of the message is undefined after allocation and it  should  be
     filled in by the user. While nn_send(3) and nn_sendmsg(3) allow to send ar-
     bitrary  buffers,	buffers  allocated using nn_allocmsg() can be more effi-
     cient for large messages as they allow for using zero-copy techniques.

     type parameter specifies type of allocation mechanism to use. Zero  is  the
     default  one, however, individual transport mechanisms may define their own
     allocation mechanisms, such as allocating in shared memory or allocating  a
     memory  block  pinned  down  to a physical memory address. Such allocation,
     when used with the transport that defines them, should  be  more  efficient
     than the default allocation mechanism.

RETURN VALUE
     If  the  function	succeeds  pointer to newly allocated buffer is returned.
     Otherwise, NULL is returned and errno is set to to one of	the  values  de-
     fined below.

ERRORS
     EINVAL
	 Supplied allocation type is invalid.

     ENOMEM
	 Not enough memory to allocate the message.

EXAMPLE
	 void *buf = nn_allocmsg (12, 0);
	 memcpy (buf, "Hello world!", 12);
	 nn_send (s, &buf, NN_MSG, 0);

SEE ALSO
     nn_freemsg(3) nn_reallocmsg(3) nn_send(3) nn_sendmsg(3) nanomsg(7)

AUTHORS
     Martin Sustrik <sustrik@250bpm.com>

				   2018-10-15			  NN_ALLOCMSG(3)

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

home | help