libc11
is a public domain implementation of the C11 (ISO/IEC 9899:2011) standard library.
- No build prerequisites beyond the Autotools toolchain and a C99 compiler.
- 100% free and unencumbered public domain software, usable in any context and for any purpose.
This table summarizes which C11 features are implemented at present:
Header | Spec | Description | Status |
---|---|---|---|
<assert.h> <complex.h> |
C11 7.2 C11 7.3 |
Diagnostics. Complex arithmetic. |
WIP |
<ctype.h> | C11 7.4 | Character handling. | Implemented. |
<errno.h> <fenv.h> <float.h> |
C11 7.5 C11 7.6 C11 7.7 |
Errors. Floating-point environment. Characteristics of floating types. |
WIP |
<inttypes.h> | C11 7.8 | Format conversion of integer types. | WIP |
<iso646.h> | C11 7.9 | Alternative spellings. | Implemented. |
<limits.h> | C11 7.10 | Sizes of integer types. | Implemented. |
<locale.h> <math.h> <setjmp.h> |
C11 7.11 C11 7.12 C11 7.13 |
Localization. Mathematics. Nonlocal jumps. |
WIP |
<signal.h> | C11 7.14 | Signal handling. | WIP |
<stdalign.h> | C11 7.15 | Alignment. | Implemented. |
<stdarg.h> | C11 7.16 | Variable arguments. | Implemented.1 |
<stdatomic.h> | C11 7.17 | Atomics. | WIP |
<stdbool.h> | C11 7.18 | Boolean type and values. | Implemented. |
<stddef.h> | C11 7.19 | Common definitions. | WIP |
<stdint.h> | C11 7.20 | Integer types. | WIP |
<stdio.h> | C11 7.21 | Input/output. | WIP |
<stdlib.h> | C11 7.22 | General utilities. | WIP |
<stdnoreturn.h> | C11 7.23 | _Noreturn . |
Implemented. |
<string.h> <tgmath.h> <threads.h> <time.h> <uchar.h> |
C11 7.24 C11 7.25 C11 7.26 C11 7.27 C11 7.28 |
String handling. Type-generic math. Threads. Date and time. Unicode utilities. |
WIP |
<wchar.h> | C11 7.29 | Wide character utilities. | Omitted.2 |
<wctype.h> | C11 7.30 | Wide character utilities. | Omitted.3 |
Footnotes
$ ./autogen.sh
$ ./configure
$ make
$ sudo make install
$ sudo ldconfig # on Linux
Find this project at: GitHub, Bitbucket, Ohloh, Freecode, SourceForge, Travis CI, Twitter, Tumblr, and COD5.
Many other open-source implementations of the C standard library exist, though most of them are licensed more restrictively than this implementation:
- PDCLib (public domain)
- PDPCLIB (public domain)
- Bionic (BSD)
- dietlibc (GPL)
- EGLIBC (LGPL)
- glibc (LGPL)
- klibc (GPL/BSD)
- musl (MIT)
- Newlib (LGPL/BSD/etc)
- olibc (BSD)
- uClibc (LGPL)
This project is part of the DRY initiative.
If you found this software useful and would like to encourage its maintenance and further development, please consider making a donation to the Bitcoin wallet address 1AiNcRvhxJQbBJ98Rcpyc8gtF3dGy8AxGQ.
This is free and unencumbered public domain software. For more information, see http://unlicense.org/ or the accompanying UNLICENSE
file.