Java comes with a rich and still-developing set of classes to support I/O, networking, GUIs, etc, to access a process's environment.

Similarly, the C language has a core of facilities to access its environment. These functions, types and macros form C's Standard Library. However, it is necessarily limited in order to support maximum portability. Here are some obvious omissions:

  • GUI
  • Networking
  • Collections and containers

Access to other facilities is through additional libraries that are usually specific to your platform.

The headers of the C Standard Library are briefly summarised below:

<stddef.h>

Some essential macros and additional type declarations

<stdlib.h>

Access to environment; dynamic memory allocation; miscellaneous utilities

<stdio.h>

Streamed input and output of characters

<string.h>

String handling

<ctype.h>

Classification of characters (upper/lower case, alphabetic/numeric etc)

<limits.h>

Implementation-defined limits for integral types

<float.h>

Implementation-defined limits for floating-point types

<math.h>

Mathematical functions

<assert.h>

Diagnostic utilities

<errno.h>

Error identification

<locale.h>

Regional/national variations in character sets, time formats, etc

<stdarg.h>

Support for functions with variable numbers of arguments

<time.h>

Representations of time, and clock access

<signal.h>

Handling of exceptional run-time events

<setjmp.h>

Restoration of execution to a previous state

C95 additionally provides the following headers:

<iso646.h>

Alphabetic names for operators

<wchar.h>

Manipulation of wide-character streams and strings

<wctype.h>

Classification of wide characters (upper/lower case, alphabetic/numeric etc)

C99 additionally provides the following headers:

<stdbool.h>

The boolean type and constants

<complex.h>

The complex types and constants

<inttypes.h>
<stdint.h>

Integer types of specific or minimum widths

<fenv.h>

Access to the floating-point environment

<tgmath.h>

Type-generic mathematics functions

C11 additionally provides the following headers:

<stdalign.h>

Alignment

<stdatomic.h>

Atomic types and operations

<stdnoreturn.h>

Non-returning functions

<threads.h>

Threads

<uchar.h>

Unicode characters