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

# compat(3)

ast library compatibility routines

## NAME

compatibility - ast library compatibility routines

## SYNOPSIS

```
#include <ast.h>
int	atexit(void(*)(void));
char*	confstr(int);
int	dup2(int, int);
long	fpathconf(int, int);
int	getgroups(int, int*);
char*	getwd(char*);
int	killpg(int, int);
int	link(const char*, const char*);
int	lstat(const char*, struct stat*);
int	memcmp(const char*, const char*, unsigned int);
char*	memcpy(char*, const char*, int);
char*	memset(char*, char, int);
int	mkdir(const char*, mode_t);
int	mkfifo(const char*, mode_t);
int	mknod(const char*, mode_t);
char*	mktemp(char*);
int	mount(const char*, const char*, int);
long	pathconf(const char*, int);
int	perror(const char*);
FILE*	popen(const char*, const char*);
int	readlink(const char*, char*, int);
int	remove(const char*);
int	rename(const char*, const char*);
int	rmdir(const char*);
int	setpgid(pid_t, pid_t);
int	sigmask(int);
int	sigsetmask(long);
int	sigunblock(int);
char*	strchr(const char*, int);
char*	strrchr(const char*, int);
double	strtod(const char*, char**);
long	strtol(const char*, char**, int);
int	symlink(const char*, const char*);
long	sysconf(int);
int	system(const char*);
char*	tmpnam(char*);
int	unlink(const char*);
int	vfork(void);
int	waitpid(pid_t, int*, int);
```

## DESCRIPTION

These routines are described in the ANSI C, POSIX, BSD and System V manual sections 2 and 3. The interfaces are preserved and present in all libast implementations. Where conflicts exist the POSIX syntax and semantics are implied. The appropriate error value is returned and *errno* is set to $1$2EINVALEINVALEINVALEINVALEINVALEINVALEINVALEINVAL when emulation is either too expensive or not possible.

## CAVEATS

If you $1$2#undef foo#undef foo#undef foo#undef foo#undef foo#undef foo#undef foo#undef foo and then call $1$2foofoofoofoofoofoofoofoo you may end up with the local implementation of $1$2foofoofoofoofoofoofoofoo and then you get what you payed for.
