---
name: "buffer_get_new_token_sa"
section: "3"
platform: "linux"
package: "libowfat-dev"
version: "0.32-5"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/buffer_get_new_token_sa"
---

# buffer\_get\_new\_token\_sa(3)

read token from buffer

## NAME

buffer\_get\_new\_token\_sa - read token from buffer

## SYNTAX

```
#include <libowfat/stralloc.h>
#include <libowfat/buffer.h>
int buffer_get_new_token_sa(buffer* b,stralloc* sa,
                    const char* charset,size_t setlen);
```

## DESCRIPTION

buffer\_get\_new\_token\_sa copies data from the *b* to *sa* until one of the delimiters in *charset* is found, overwriting the previous content of *sa*.  That delimiter is also copied to *sa*.

If reading from the buffer or allocating memory fails, buffer\_get\_new\_token\_sa returns -1 and sets *errno* appropriately.  At that point *sa* may already contain a partial token.

If you want to read from a non-blocking socket, use buffer\_get\_token\_sa instead.

## RETURN VALUE

\-1 on error (setting errno), 0 on EOF, 1 when successful.

## SEE ALSO

[buffer\_getline\_sa(3)](/buffer_getline_sa/3.md), [buffer\_get\_token(3)](/buffer_get_token/3.md), [buffer(3)](/buffer/3.md)
