da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.fp 5 CW
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.de Af
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.ds ;G \\*(;G\\f\\$1\\$3\\f\\$2
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.if !\\$4 .Af \\$2 \\$1 "\\$4" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin..
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.de aF
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.ie \\$3 .ft \\$1
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.el \{\
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.ds ;G \&
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.nr ;G \\n(.f
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.Af "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin\\*(;G
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.ft \\n(;G \}
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin..
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.de L
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.aF 5 \\n(.f "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin..
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.de LR
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.aF 5 1 "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin..
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.de RL
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.aF 1 5 "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin..
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.de EX \" start example
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.ta 1i 2i 3i 4i 5i 6i
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.PP
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.RS
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.PD 0
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.ft 5
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.nf
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin..
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.de EE \" end example
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.fi
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.ft
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.PD
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.RE
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.PP
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin..
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.TH COMPATIBILITY 3
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.SH NAME
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chincompatibility \- ast library compatibility routines
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.SH SYNOPSIS
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.EX
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#include <ast.h>
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinint atexit(void(*)(void));
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinchar* confstr(int);
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinint dup2(int, int);
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinlong fpathconf(int, int);
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinint getgroups(int, int*);
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinchar* getwd(char*);
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinint killpg(int, int);
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinint link(const char*, const char*);
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinint lstat(const char*, struct stat*);
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinint memcmp(const char*, const char*, unsigned int);
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinchar* memcpy(char*, const char*, int);
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinchar* memset(char*, char, int);
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinint mkdir(const char*, mode_t);
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinint mkfifo(const char*, mode_t);
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinint mknod(const char*, mode_t);
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinchar* mktemp(char*);
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinint mount(const char*, const char*, int);
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinlong pathconf(const char*, int);
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinint perror(const char*);
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinFILE* popen(const char*, const char*);
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinint readlink(const char*, char*, int);
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinint remove(const char*);
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinint rename(const char*, const char*);
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinint rmdir(const char*);
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinint setpgid(pid_t, pid_t);
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinint sigmask(int);
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinint sigsetmask(long);
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinint sigunblock(int);
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinchar* strchr(const char*, int);
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinchar* strrchr(const char*, int);
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chindouble strtod(const char*, char**);
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinlong strtol(const char*, char**, int);
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinint symlink(const char*, const char*);
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinlong sysconf(int);
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinint system(const char*);
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinchar* tmpnam(char*);
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinint unlink(const char*);
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinint vfork(void);
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinint waitpid(pid_t, int*, int);
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.EE
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.SH DESCRIPTION
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinThese routines are described in the ANSI C, POSIX, BSD and System V manual
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinsections 2 and 3.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinThe interfaces are preserved and present in all libast implementations.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinWhere conflicts exist the POSIX syntax and semantics are implied.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinThe appropriate error value is returned and
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.I errno
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinis set to
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.L EINVAL
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinwhen emulation is either too expensive or not possible.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.SH CAVEATS
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinIf you
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.L "#undef foo"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinand then call
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.L foo
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinyou may end up with the local implementation of
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.LR foo ,
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinand then you get what you payed for.