summaryrefslogtreecommitdiffstats
path: root/man7/libc.7
diff options
context:
space:
mode:
Diffstat (limited to 'man7/libc.7')
-rw-r--r--man7/libc.7115
1 files changed, 115 insertions, 0 deletions
diff --git a/man7/libc.7 b/man7/libc.7
new file mode 100644
index 0000000..7a62251
--- /dev/null
+++ b/man7/libc.7
@@ -0,0 +1,115 @@
+.\" Copyright (c) 2009 Linux Foundation, written by Michael Kerrisk
+.\" <mtk.manpages@gmail.com>
+.\"
+.\" SPDX-License-Identifier: Linux-man-pages-copyleft
+.\"
+.TH libc 7 2023-02-05 "Linux man-pages 6.05.01"
+.SH NAME
+libc \- overview of standard C libraries on Linux
+.SH DESCRIPTION
+The term \[lq]libc\[rq] is commonly used as a shorthand for
+the \[lq]standard C library\[rq]
+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 \[lq]libc\[rq]
+to refer to the standard C library is somewhat ambiguous on Linux.
+.SS glibc
+By far the most widely used C library on Linux is the
+.UR http://www.gnu.org\:/software\:/libc/
+GNU C Library
+.UE ,
+often referred to as
+.IR 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
+.I man-pages
+project
+(primarily in Section 3 of the manual).
+Documentation of glibc is also available in the glibc manual,
+available via the command
+.IR "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.
+.PP
+The pathname
+.I /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.
+.SS Linux libc
+In the early to mid 1990s,
+there was for a while
+.IR "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 \[lq]libc\[rq].
+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
+.IR libc.so.5 .
+For a while,
+Linux libc was the standard C library in many Linux distributions.
+.PP
+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
+.IR libc.so.6 .
+.PP
+Since the switch from Linux libc to glibc 2.0 occurred long ago,
+.I 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
+.I libc4
+and
+.IR libc5 .
+.SS 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
+.UR http://www\:.uclibc\:.org/
+.I uClibc
+.UE ,
+.UR http://www\:.fefe\:.de/\:dietlibc/
+.I dietlibc
+.UE ,
+and
+.UR http://www\:.musl\-libc\:.org/
+.I "musl libc"
+.UE .
+Details of these libraries are covered by the
+.I man-pages
+project,
+where they are known.
+.SH SEE ALSO
+.BR syscalls (2),
+.BR getauxval (3),
+.BR proc (5),
+.BR feature_test_macros (7),
+.BR man\-pages (7),
+.BR standards (7),
+.BR vdso (7)