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

FreeBSD Manual Pages

  
 
  

home | help
SUFFIX_ATTACH(3)	   libdill Library Functions	      SUFFIX_ATTACH(3)

NAME
       suffix_attach - creates SUFFIX protocol on top of underlying socket

SYNOPSIS
	      #include <libdill.h>

	      int suffix_attach(
		  int s,
		  const	void* suffix,
		  size_t suffixlen);

DESCRIPTION
       SUFFIX  is  a message-based protocol that delimits messages by specific
       byte sequences.	For example, many protocols are	line-based, with indi-
       vidual messages separated by CR+LF sequence.

       This function instantiates SUFFIX protocol on  top  of  the  underlying
       protocol.

       s: Handle of the	underlying socket.  It must be a bytestream protocol.

       suffix: The delimiter byte sequence.

       suffixlen: The size of the delimiter, in	bytes.

       The socket can be cleanly shut down using suffix_detach function.

       This  function  is  not	available  if  libdill is compiled with	--dis-
       able-sockets option.

RETURN VALUE
       In case of success the function returns newly  created  socket  handle.
       In  case	of error it returns -1 and sets	errno to one of	the values be-
       low.

ERRORS
        EBADF:	Invalid	handle.

        EMFILE: The maximum number of file descriptors	in the process are al-
	 ready open.

        ENFILE: The maximum number of file descriptors	in the system are  al-
	 ready open.

        ENOMEM: Not enough memory.

        ENOTSUP: The handle does not support this operation.

        EPROTO: Underlying socket is not a bytestream socket.

EXAMPLE
		      int s = tcp_connect(&addr, -1);
		      s	= suffix_attach(s, "
	      ", 2);
		      msend(s, "ABC", 3, -1);
		      char buf[256];
		      ssize_t sz = mrecv(s, buf, sizeof(buf), -1);
		      s	= suffix_detach(s, -1);
		      tcp_close(s);

SEE ALSO
       hclose(3)  mrecv(3)  mrecvl(3)  msend(3)	msendl(3) suffix_attach_mem(3)
       suffix_detach(3)

libdill							      SUFFIX_ATTACH(3)

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

home | help