NAME¶
buffer_get_token_sa - read token from buffer
SYNTAX¶
#include <stralloc.h>
#include <buffer.h>
int buffer_get_token_sa(buffer* b,stralloc* sa,
const char* charset,size_t setlen);
DESCRIPTION¶
buffer_get_token_sa appends data from the
b to
sa until one of the
delimiters in
charset is found, NOT overwriting the previous content of
sa. That delimiter is also appended to
sa.
If reading from the buffer or allocating memory fails, buffer_get_token_sa
returns -1 and sets
errno appropriately. At that point
sa may
already contain a partial token.
RETURN VALUE¶
-1 on error (setting errno), 0 on EOF, 1 when successful.
RATIONALE¶
buffer_get_token_sa 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)