TERMKEY\_PUSH\_BYTES(3) Library Functions Manual TERMKEY\_PUSH\_BYTES(3)

# [NAME](#NAME)

termkey\_push\_bytes - supply more bytes to the input buffer

# [SYNOPSIS](#SYNOPSIS)

```
#include <termkey.h>

size_t termkey_push_bytes(TermKey *tk, const char *bytes, size_t len);
```

Link with *-ltermkey*.

# [DESCRIPTION](#DESCRIPTION)

**termkey\_push\_bytes**() allows more bytes of input to be supplied directly into the input buffer of the [**termkey**(7)](/man/os/libtermkey/termkey.7) instance. If there was no buffer space remaining then -1 is returned with *errno* set to **ENOMEM**.

This function, along with [**termkey\_getkey**(3)](/man/os/libtermkey/termkey_getkey.3), makes it possible to use the **termkey** instance with a source of bytes other than from reading a filehandle.

For synchronous usage, [**termkey\_waitkey**(3)](/man/os/libtermkey/termkey_waitkey.3) performs the input blocking task. For use against a regular stream filehandle that supports [**read**(2)](/man/os/libtermkey/read.2), see [**termkey\_advisereadable**(3)](/man/os/libtermkey/termkey_advisereadable.3).

# [RETURN VALUE](#RETURN_VALUE)

**termkey\_push\_bytes**() the number of bytes consumed from the input (which may be smaller than the length provided, if the buffer runs out of space) or -1 cast to **size\_t** if an error occurs, in which case *errno* is set accordingly.

# [SEE ALSO](#SEE_ALSO)

[**termkey\_getkey**(3)](/man/os/libtermkey/termkey_getkey.3), [**termkey\_advisereadable**(3)](/man/os/libtermkey/termkey_advisereadable.3), [**termkey**(7)](/man/os/libtermkey/termkey.7)

---

Document: termkey_push_bytes(3) from libtermkey 0.22-r8 (Chainguard OS)
