libc(7)
๐ libc โ an overview of standard C libraries on Linux ๐
okay bestie, welcome to libc(7) โ yes it lives in the Miscellaneous Information Manual, and yes it's about to give you the whole โจloreโจ.
๐ธ NAME ๐ธ
libc โ the whole tea on standard C libraries on Linux
๐ DESCRIPTION ๐
So. When people say "libc" they're usually just being lazy for "standard C library" โ aka the library of standard functions that literally every C program gets to use (and sometimes programs written in other languages too, no gatekeeping ๐ ).
But here's the thing: because of some history (scroll down, we get into it), using the term "libc" to mean the standard C library is lowkey ambiguous on Linux. It's giving "one name, multiple exes" ๐ญ.
๐ glibc ๐
By far the most widely used C library on Linux is the GNU C Library, aka glibc โ she's the moment, she's the main character, she's the C library used nowadays in all major Linux distributions. Periodt.
She's also the C library whose details get documented in the relevant pages of the man-pages project (primarily in Section 3 of the manual, iykyk). But wait, there's more โ glibc documentation also lives in the glibc manual, which you can pull up with:
info libc
Timeline check โณ: release 1.0 of glibc dropped in September 1992 (and yes there were earlier 0.x releases before that). The next major release was 2.0, at the beginning of 1997.
And bestie, about the pathname /lib/libc.so.6 (or something similar) โ normally that's a symbolic link pointing to wherever the glibc library actually lives. Fun party trick: executing that pathname will make glibc spill all kinds of info about the version installed on your system. Iconic behavior honestly ๐ซถ.
๐ฆ Linux libc ๐ฆ
Flashback to the early-to-mid 1990s: for a while there was Linux libc, a fork of glibc 1.x made by Linux developers who felt glibc development at the time wasn't sufficing for Linux's needs. Rude? Maybe. Valid at the time? Sure.
This one got referred to โ ambiguously ๐ โ as just "libc". Linux libc released major versions 2, 3, 4, and 5, plus a whole bunch of 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, and it used the shared library soname
libc.so.5.
For a while, Linux libc was the standard C library in many Linux distributions. She had her era ๐ .
But โ and this is the plot twist โ notwithstanding the original motivations of the Linux libc effort, by the time glibc 2.0 was released (in 1997) it was clearly superior, and all the 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 that switch from Linux libc to glibc 2.0 happened long ago, man-pages no longer takes care to document Linux libc details. Nevertheless, the history is still visible โ vestiges of info about Linux libc remain in a few manual pages, in particular references to libc4 and libc5. Ghosts of eras past ๐งโจ.
๐ Other C libraries ๐
There are also various other, less widely used C libraries for Linux. These 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 them:
- uClibc
- dietlibc
- musl libc
Details of these libraries are covered by the man-pages project, where they are known. Small but mighty, we stan ๐.
โญ SEE ALSO โญ
and that's the whole page bestie, mwah ๐ this little love letter came to you from Linux man-pages 6.20, dated 2025-12-25 โ happy reading, go slay some C ๐โจ
๐ฆ where this page comes from
- arch rolling: man-pages 6.20-1 ยท BSD-2-Clause AND BSD-3-Clause AND BSD-4.3TAHOE AND BSD-4-Clause-UC AND GPL-1.0-or-later AND GPL-2.0-only AND GPL-2.0-or-later AND GPL-3.0-or-later AND LGPL-3.0-linking-exception AND LGPL-3.0-or-later AND LicenseRef-Public-Domain AND LicenseRef-UltraPermissive AND Linux-man-pages-1-para AND Linux-man-pages-copyleft AND Linux-man-pages-copyleft-2-para AND Linux-man-pages-copyleft-var AND MIT AND Spencer-94
- nixpkgs unstable: man-pages 6.20
- ๐ the page's license: Linux-man-pages-copyleft
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms