FreeBSD Manual Pages
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)
NAME | SYNTAX | DESCRIPTION | RATIONALE | SEE ALSO
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>