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

FreeBSD Manual Pages

  
 
  

home | help
buffer_get...en_sa_pred(3) Library Functions Manual buffer_get...en_sa_pred(3)

NAME
       buffer_get_token_sa_pred	- read token from buffer

SYNTAX
       #include	<libowfat/stralloc.h>
       #include	<libowfat/buffer.h>

       int buffer_get_token_sa_pred(buffer* b,stralloc*	sa,
			int (*predicate)(stralloc* * sa));

DESCRIPTION
       buffer_get_token_sa_pred	 appends data from b to	sa until predicate(sa)
       returns 1 or -1.

       If predicate returns 1 once a '\n' was read, that new-line character is
       still appended to sa -- use stralloc_chop or stralloc_chomp to get  rid
       of  it.	 predicate  can	also return 0 (indicating further input	is re-
       quired to complete the token) or	-1 (abort and return -1; use  this  if
       predicate  wants	 to enfore a maximum message size or does timeout han-
       dling or	detects	a malformed message).

       If reading from the buffer or allocating	memory	fails,	buffer_get_to-
       ken_sa_pred  returns -1 and sets	errno appropriately.  At that point sa
       may already contain a partial token.

       On success, buffer_get_token_sa_pred returns 0.

RATIONALE
       buffer_get_token_sa_pred	appends	instead	of overwriting so  it  can  be
       used  on	 non-blocking sockets (these signal error and set errno	to EA-
       GAIN; in	this case you can simply call buffer_get_token_sa  again  when
       select or poll indicate more data is available).

SEE ALSO
       buffer_getline_sa(3), buffer_get_token(3), buffer(3)

						    buffer_get...en_sa_pred(3)

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

home | help