Provided by: manpages_5.05-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  5.05  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/.