Provided by: manpages_4.16-1_all bug

NAME

       libc - overview of standard C libraries on Linux

DESCRIPTION

       The term "libc" is commonly used as a shorthand for the "standard C library", a library of
       standard functions that can be used by all C programs (and sometimes by programs in  other
       languages).   Because  of some history (see below), use of the term "libc" to refer to the
       standard C library is somewhat ambiguous on Linux.

   glibc
       By far the most widely used C library on Linux is the GNU  C  Library  ⟨http://www.gnu.org
       /software/libc/⟩, often referred to as glibc.  This is the C library that is nowadays used
       in all major Linux distributions.  It is also the C library whose details  are  documented
       in  the  relevant  pages  of the man-pages project (primarily in Section 3 of the manual).
       Documentation of glibc is also available in the glibc manual, available  via  the  command
       info  libc.   Release  1.0  of  glibc was made in September 1992.  (There were earlier 0.x
       releases.)  The next major release of glibc was 2.0, at the beginning of 1997.

       The pathname /lib/libc.so.6 (or something similar) is normally a symbolic link that points
       to  the  location  of  the  glibc library, and executing this pathname will cause glibc to
       display various information about the version installed on your system.

   Linux libc
       In the early to mid 1990s, there was for a while Linux libc, a fork of glibc  1.x  created
       by  Linux developers who felt that glibc development at the time was not sufficing for the
       needs of Linux.  Often, this library was referred to (ambiguously) as just "libc".   Linux
       libc  released  major  versions  2,  3,  4, and 5, as well as many minor versions of those
       releases.  Linux libc4 was the last version to use the a.out binary format, and the  first
       version to provide (primitive) shared library support.  Linux libc 5 was the first version
       to support the ELF binary format; this version used the shared library  soname  libc.so.5.
       For a while, Linux libc was the standard C library in many Linux distributions.

       However,  notwithstanding  the  original motivations of the Linux libc effort, by the time
       glibc 2.0 was released (in 1997), it was clearly superior to Linux  libc,  and  all  major
       Linux  distributions that had been using Linux libc soon switched back to glibc.  To avoid
       any confusion with Linux libc versions, glibc 2.0 and later used the shared library soname
       libc.so.6.

       Since the switch from Linux libc to glibc 2.0 occurred long ago, man-pages no longer takes
       care to document Linux libc details.  Nevertheless, the history is visible in vestiges  of
       information  about Linux libc that remain in a few manual pages, in particular, references
       to libc4 and libc5.

   Other C libraries
       There are various other less widely used C  libraries  for  Linux.   These  libraries  are
       generally  smaller  than  glibc, both in terms of features and memory footprint, and often
       intended for building small binaries, perhaps targeted at development for  embedded  Linux
       systems.    Among   such   libraries   are   uClibchttp://www.uclibc.org/⟩,   dietlibchttp://www.fefe.de/dietlibc/⟩, and musl  libchttp://www.musl-libc.org/⟩.   Details  of
       these libraries are covered by the man-pages project, where they are known.

SEE ALSO

       syscalls(2),  getauxval(3),  proc(5),  feature_test_macros(7), man-pages(7), standards(7),
       vdso(7)

COLOPHON

       This page is part of release 4.16 of the Linux man-pages project.  A  description  of  the
       project,  information  about  reporting  bugs, and the latest version of this page, can be
       found at https://www.kernel.org/doc/man-pages/.