LIBAST(3ast) LIBAST(3ast)

# [NAME](#NAME)

libast - introduction to the AST library

# [DESCRIPTION](#DESCRIPTION)

This section describes the *AST* (AT&T Software Technology) library functions of the **libast** library. **libast** serves three major purposes. First, it presents (a subset of) POSIX/ANSI standard headers and interfaces on non-compliant systems. Second, it provides a portable base of routines that implement concepts common to all UNIX system variants. Finally, it is a forum for modern implementations of features present (or lacking) in the standard C libraries. Features better provided by separate libraries are omitted from **libast**. For example, most terminal driver interface issues are left for special purpose libraries such as [*curses*(3)](/man/os/ksh/curses.3).

The **libast** related header files are installed in the directories **include/ast**. Routines that do not advertize their own headers are prototyped in **&lt;ast.h&gt;**. **&lt;ast.h&gt;** includes or defines the equivalent of **&lt;limits.h&gt;**, **&lt;stddef.h&gt;**, **&lt;stdlib.h&gt;**, **&lt;sys/types.h&gt;**, **&lt;string.h&gt;** and **&lt;unistd.h&gt;**. Other libraries that depend on **libast** may also have headers installed in the **include/ast** directories.

# [FILES](#FILES)

```
include/ast         the ast package header directory
lib/libast.a        the libast library
lib/libast-g.a      the libast library compiled for debugging
lib/libast-pg.a     the libast library compiled for profiling
lib/libast.so.4.0   the libast shared library
```

# [SEE ALSO](#SEE_ALSO)

[intro(3)](/man/os/ksh/intro.3), [intro(2)](/man/os/ksh/intro.2), [cc(1)](/man/os/ksh/cc.1)

# [CAVEATS](#CAVEATS)

The library documentation is still under construction. Yes, some of it has been in this state since the 1980s. Thank goodness our commands self-document.

4th Berkeley Distribution

---

Document: LIBAST(3ast) from ksh 1.0.10-r36 (Chainguard OS)
Source: https://github.com/ksh93/ksh
