Home

libc

Libc, short for the C standard library, is a collection of standard C functions that provide the basic runtime support for C programs. It supplies facilities for input and output, memory management, string handling, mathematics, time, environment and process control, error reporting, and interfacing with the operating system. A libc implementation sits between application code and the kernel, offering a portable API that translates C calls into system calls and library services.

Among the most widely used implementations are the GNU C Library (glibc), musl libc, and uClibc. Other

Libc consists of the standard library functions, a dynamic linker/loader when using dynamic linking, and supporting

Programs can link to libc statically or dynamically; dynamic linking via a shared library reduces memory usage

Libc implementations aim to comply with the C standard and POSIX, while often including extensions. Licensing

Because most Unix-like systems rely on libc for basic functionality, it is a foundational component of software

examples
include
Bionic
(used
on
Android),
Newlib,
and
dietlibc.
Linux
distributions
typically
ship
with
glibc
or
musl;
BSD
systems
ship
their
own
libc
variants.
components
like
locale
data,
thread
support,
and
memory
allocation
facilities.
It
may
provide
wrappers
around
system
calls
to
offer
consistent
behavior
across
kernels
and
architectures.
Some
implementations
offer
extensions
beyond
the
ISO
C
and
POSIX
standards.
and
enables
updates,
at
the
cost
of
startup
latency.
The
dynamic
linker,
often
invoked
automatically
by
the
program
loader,
resolves
dependencies
at
startup.
varies:
glibc
is
released
under
the
LGPL
with
a
static
linking
exception;
musl
is
permissively
licensed;
uClibc
uses
LGPL;
Bionic
has
its
own
licensing.
This
affects
distribution
and
redistribution
in
some
environments.
compatibility,
influencing
performance,
internationalization,
threading,
and
security
patches.
Ongoing
development
focuses
on
correctness,
portability,
size
reduction
for
embedded
systems,
and
improved
support
for
modern
C
features
and
standards.