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

FreeBSD Manual Pages

  
 
  

home | help
buffer_get_token_sa_pred(3) Library Functions Manual buffer_get_token_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) re-
     turns 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  required  to
     complete the token) or -1 (abort and return -1; use this if predicate wants
     to enfore a maximum message size or does timeout handling or detects a mal-
     formed 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  EAGAIN;  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_token_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+15.1.quarterly>

home | help