# Standards, Docs, etc.

This is a fine collection of references to documentation about programming issues and API standards. Especially it focuses on public available resources, since unfortunately most offical standard documents are not distributed for free :-(

## Official Standard Documents

Well, often the "real official" standard documents are rather expensive. So the "clever" people know where the final drafts can be found ... (and they are aware that those are not the final standard documents!)

- C
  - ANSI C standard drafts
    - ANSI C89 rationale
    - ANSI C9X rationale (draft!)
    - ANSI C9X standard (draft!)
  - C FAQ (older version in HTML)
- C++
  - ANSI C++ standard drafts
  - C++ FAQ lite
- Fortran
  - Overview about ISO Fortran standard drafts
  - Fortran 95 drafts
  - Fortran 200x drafts
  - Fortran FAQ
  - Another Fortran FAQ
- un*x & Other API References
  - POSIX.1
    There's no legal copy available for free
  - Austin Group standard drafts:
    X/Open and POSIX join now to create a unique definition. You can get the drafts for free if you register (at no cost)! Latest is draft 4.
  - Unix man pages (Single UNIX Specification)
  - API, standards reference table
  - FAQ for un*x programming
- Library API References
  - X11 and related references (man pages)
  - Info about Imake
  - Motif®
    - Motif home
    - Links to info about M*tif
- Misc Programming
  - Infos about floating point math, IEEE 754, etc.
  - Drafts for ISO/IEC 10967-1 (standard for language-independent arithmetic (LIA-1))

## Implementations

Sometimes it might be helpful to see a real-world examples of the standards given above. So I also collect some links to implementations. Take to care to read the according docs, which will (hopefully) tell you about the conformance with according standards.

- Misc un*x Stuff
  - Useful UNIX links
  - Information about various un*x flavours
- BSD Systems
  - FreeBSD
    - FreeBSD sources
    - FreeBSD sources cross-reference
  - NetBSD
  - OpenBSD
- linux
  - Linux source code reference
  - Miscellaneous Linux documentations
  - Linux man pages
- Sources, Libraries
  - Freely Distributable LIBM (fdlibm)
    Missing math stuff can be found here
  - cephes
    Math library, too

## Definitions

The following list is taken from the linux man pages (`INTRO(2) linux Programmer's Manual`), which is not up-to-date. So I will correct&update it when I find some time ...

SVr4
  System V Release 4 Unix, as described in the "Programmer's Reference Manual: Operating System API (Intel processors)" (Prentice-Hall 1992, ISBN 0-13-951294-2)
SVID
  System V Interface Definition, as described in "The System V Interface Definition, Fourth Edition", available in Postscript format at ftp.fpk.novell.com
  [broken link! Better try at ftp.inf.tu-dresden.de ]
POSIX.1
  IEEE 1003.1-1990 part 1, aka ISO/IEC 9945-1:1990s, aka "IEEE Portable Operating System Interface for Computing Environments", as elucidated in Donald Lewine's "POSIX Programmer's Guide" (O'Reilly & Associates, Inc., 1991, ISBN 0-937175-73-0.)
POSIX.1b
  IEEE Std 1003.1b-1993 (POSIX.1b standard) describing real-time facilities for portable operating systems, aka ISO/IEC 9945-1:1996, as elucidated in "Programming for the real world - POSIX.4" by Bill O. Gallmeister (O'Reilly & Associates, Inc. ISBN 1-56592-074-0).
4.3BSD/4.4BSD
  The 4.3 and 4.4 distributions of Berkeley Unix. 4.4BSD was upward-compatible from 4.3.
V7
  Version 7, the ancestral Unix from Bell Labs.