doc::unibi\_from\_mem(3) unibilium doc::unibi\_from\_mem(3)

# [NAME](#NAME)

unibi\_from\_mem - construct a terminal object from a compiled terminfo entry

# [SYNOPSIS](#SYNOPSIS)

```
 #include <unibilium.h>
 
 unibi_term *unibi_from_mem(const char *p, size_t n);
```

# [DESCRIPTION](#DESCRIPTION)

This function parses a compiled terminfo entry that starts at *p* and is *n* bytes long, and constructs a "unibi\_term" object from it. When you're done with this object, you should call "unibi\_destroy" to free it.

"unibi\_from\_mem" parses both the traditional ncurses terminfo format (starting with the bytes "1A 01") and the newer "wide integer" format (starting with the bytes "1E 02").

# [RETURN VALUE](#RETURN_VALUE)

A pointer to a new "unibi\_term". In case of failure, "NULL" is returned and "errno" is set.

# [ERRORS](#ERRORS)

"EINVAL"

The bytes *p* points at don't look like a valid terminfo entry.

"EFAULT"

*n* is too small for a valid terminfo entry.

# [SEE ALSO](#SEE_ALSO)

[**unibilium.h**(3)](/man/os/unibilium/unibilium.h.3), [**unibi\_dump**(3)](/man/os/unibilium/unibi_dump.3), [**unibi\_destroy**(3)](/man/os/unibilium/unibi_destroy.3), [**unibi\_from\_fp**(3)](/man/os/unibilium/unibi_from_fp.3), [**unibi\_from\_fd**(3)](/man/os/unibilium/unibi_from_fd.3), [**unibi\_from\_file**(3)](/man/os/unibilium/unibi_from_file.3), [**unibi\_from\_term**(3)](/man/os/unibilium/unibi_from_term.3), [**unibi\_from\_env**(3)](/man/os/unibilium/unibi_from_env.3)

2026-08-30 unibilium-2.1.4

---

Document: unibi_from_mem(3) from unibilium 2.1.4-r0 (Chainguard OS)
Source: https://github.com/neovim/unibilium
