1.fp 5 CW 2.de Af 3.ds ;G \\*(;G\\f\\$1\\$3\\f\\$2 4.if !\\$4 .Af \\$2 \\$1 "\\$4" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9" 5.. 6.de aF 7.ie \\$3 .ft \\$1 8.el \{\ 9.ds ;G \& 10.nr ;G \\n(.f 11.Af "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9" 12\\*(;G 13.ft \\n(;G \} 14.. 15.de L 16.aF 5 \\n(.f "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7" 17.. 18.de LR 19.aF 5 1 "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7" 20.. 21.de RL 22.aF 1 5 "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7" 23.. 24.de EX \" start example 25.ta 1i 2i 3i 4i 5i 6i 26.PP 27.RS 28.PD 0 29.ft 5 30.nf 31.. 32.de EE \" end example 33.fi 34.ft 35.PD 36.RE 37.PP 38.. 39.TH COMPATIBILITY 3 40.SH NAME 41compatibility \- ast library compatibility routines 42.SH SYNOPSIS 43.EX 44#include <ast.h> 45 46int atexit(void(*)(void)); 47char* confstr(int); 48int dup2(int, int); 49long fpathconf(int, int); 50int getgroups(int, int*); 51char* getwd(char*); 52int killpg(int, int); 53int link(const char*, const char*); 54int lstat(const char*, struct stat*); 55int memcmp(const char*, const char*, unsigned int); 56char* memcpy(char*, const char*, int); 57char* memset(char*, char, int); 58int mkdir(const char*, mode_t); 59int mkfifo(const char*, mode_t); 60int mknod(const char*, mode_t); 61char* mktemp(char*); 62int mount(const char*, const char*, int); 63long pathconf(const char*, int); 64int perror(const char*); 65FILE* popen(const char*, const char*); 66int readlink(const char*, char*, int); 67int remove(const char*); 68int rename(const char*, const char*); 69int rmdir(const char*); 70int setpgid(pid_t, pid_t); 71int sigmask(int); 72int sigsetmask(long); 73int sigunblock(int); 74char* strchr(const char*, int); 75char* strrchr(const char*, int); 76double strtod(const char*, char**); 77long strtol(const char*, char**, int); 78int symlink(const char*, const char*); 79long sysconf(int); 80int system(const char*); 81char* tmpnam(char*); 82int unlink(const char*); 83int vfork(void); 84int waitpid(pid_t, int*, int); 85.EE 86.SH DESCRIPTION 87These routines are described in the ANSI C, POSIX, BSD and System V manual 88sections 2 and 3. 89The interfaces are preserved and present in all libast implementations. 90Where conflicts exist the POSIX syntax and semantics are implied. 91The appropriate error value is returned and 92.I errno 93is set to 94.L EINVAL 95when emulation is either too expensive or not possible. 96.SH CAVEATS 97If you 98.L "#undef foo" 99and then call 100.L foo 101you may end up with the local implementation of 102.LR foo , 103and then you get what you payed for. 104