---
name: "LIBAST"
section: "3"
platform: "macos"
package: "ksh"
version: "42"
release: "macOS 26.5"
platforms: ["macos"]
url: "https://new.carta.tech/LIBAST"
---

# LIBAST(3)

introduction to the ast library

## NAME

libast - introduction to the ast library

## 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)](/curses/3.md).

The **libast** related header files are installed in the directories include/ast . Routines that do not advertize their own headers are prototyped in \<ast.h\> . \<ast.h\> is ANSI, K&R and C++ compatible and includes or defines the equivalent of \<limits.h\> , \<stddef.h\> , \<stdlib.h\> , \<sys/types.h\> , \<string.h\> and \<unistd.h\> . Other libraries that depend on  **libast** may also have headers installed in the include/ast directories.

## 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

[intro(3)](/intro/3.md), [intro(2)](/intro/2.md), [cc(1)](/cc/1.md)

## CAVEATS

The library documentation is still under construction. Yes, some of it has been in this state for 20 years. Thank goodness our commands self-document.
