COMPATIBILITY(3)

πŸ“¦ version 93vu, in opensuse-leap 16.0

πŸ’– NAME πŸ’–

Okay so this is COMPATIBILITY(3) from the Library Functions Manual β€” aka the ast library compatibility routines page, and it's giving β€œwe keep the old interfaces alive” energy. πŸ’…

  • compatibility β€” ast library compatibility routines

✨ SYNOPSIS ✨

Include this exactly, bestie:

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

That's the whole lineup β€” no cap, every prototype is right there. 🫢


πŸ¦‹ 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 EINVAL when emulation is either too expensive or not possible. That's the technical tea. πŸ«–βœ¨


πŸ’€ CAVEATS πŸ’€

Okay, warning time, bestie β€” for real:

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

Yes, payed is exactly how it's spelled here β€” iconic spelling moment, but the caution is real. πŸ™ˆπŸ’€


Cute little sign-off: the footer says COMPATIBILITY(3), the manual is the Library Functions Manual, and there's no extra source/version/date line printed on this page β€” so we're not inventing one, periodt. πŸ’–πŸŽ€

πŸ“¦ where this page comes from