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

# buffer\_getnewline\_sa(3)

read line from buffer

## NAME

buffer\_getnewline\_sa - read line from buffer

## SYNTAX

```
#include <libowfat/stralloc.h>
#include <libowfat/buffer.h>
int buffer_getnewline_sa(buffer* b,stralloc* sa);
```

## DESCRIPTION

buffer\_getnewline\_sa copies data from the *b* to *sa* until a '\\n' is found, overwriting the previous content of *sa*.  The new-line is also appended to *sa*.

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

To read from a non-blocking socket, use buffer\_getline\_sa.

## RETURN VALUE

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

## SEE ALSO

[buffer\_get\_token\_sa(3)](/buffer_get_token_sa/3.md), [buffer(3)](/buffer/3.md)
