]>
Commit | Line | Data |
---|---|---|
383354a9 MK |
1 | .\" Copyright (c) 2009 Linux Foundation, written by Michael Kerrisk |
2 | .\" <mtk.manpages@gmail.com> | |
3 | .\" | |
93015253 | 4 | .\" %%%LICENSE_START(VERBATIM) |
383354a9 MK |
5 | .\" Permission is granted to make and distribute verbatim copies of this |
6 | .\" manual provided the copyright notice and this permission notice are | |
7 | .\" preserved on all copies. | |
8 | .\" | |
9 | .\" Permission is granted to copy and distribute modified versions of this | |
10 | .\" manual under the conditions for verbatim copying, provided that the | |
11 | .\" entire resulting derived work is distributed under the terms of a | |
12 | .\" permission notice identical to this one. | |
13 | .\" | |
14 | .\" Since the Linux kernel and libraries are constantly changing, this | |
15 | .\" manual page may be incorrect or out-of-date. The author(s) assume no | |
16 | .\" responsibility for errors or omissions, or for damages resulting from | |
17 | .\" the use of the information contained herein. The author(s) may not | |
18 | .\" have taken the same level of care in the production of this manual, | |
19 | .\" which is licensed free of charge, as they might when working | |
20 | .\" professionally. | |
21 | .\" | |
22 | .\" Formatted or processed versions of this manual, if unaccompanied by | |
23 | .\" the source, must acknowledge the copyright and authors of this work. | |
4b72fb64 | 24 | .\" %%%LICENSE_END |
383354a9 | 25 | .\" |
c77eace5 | 26 | .TH LIBC 7 2014-07-08 "Linux" "Linux Programmer's Manual" |
383354a9 | 27 | .SH NAME |
f68512e9 | 28 | libc \- overview of standard C libraries on Linux |
383354a9 MK |
29 | .SH DESCRIPTION |
30 | The term "libc" is commonly used as a shorthand for | |
31 | the "standard C library", | |
32 | a library of standard functions that can be used by all C programs | |
33 | (and sometimes by programs in other languages). | |
34 | Because of some history (see below), use of the term "libc" | |
35 | to refer to the standard C library is somewhat ambiguous on Linux. | |
36 | .SS glibc | |
37 | By far the most widely used C library on Linux is the GNU C Library | |
608bf950 SK |
38 | .UR http://www.gnu.org\:/software\:/libc/ |
39 | .UE , | |
383354a9 MK |
40 | often referred to as |
41 | .IR glibc . | |
42 | This is the C library that is nowadays used in all | |
43 | major Linux distributions. | |
44 | It is also the C library whose details are documented | |
45 | in the relevant pages of the | |
46 | .I man-pages | |
47 | project (primarily in Section 3 of the manual). | |
48 | Documentation of glibc is also available in the glibc manual, | |
49 | available via the command | |
50 | .IR "info libc" . | |
51 | Release 1.0 of glibc was made in September 1992. | |
52 | (There were earlier 0.x releases.) | |
53 | The next major release of glibc was 2.0, at the beginning of 1997. | |
54 | ||
55 | The pathname | |
56 | .I /lib/libc.so.6 | |
57 | (or something similar) is normally a symbolic link that | |
58 | points to the location of the glibc library, | |
59 | and executing this pathname will cause glibc to display | |
60 | various information about the version installed on your system. | |
61 | .SS Linux libc | |
62 | In the early to mid 1990s, there was for a while | |
63 | .IR "Linux libc" , | |
64 | a fork of glibc 1.x created by Linux developers who felt that glibc | |
65 | development at the time was not sufficing for the needs of Linux. | |
66 | Often, this library was referred to (ambiguously) as just "libc". | |
67 | Linux libc released major versions 2, 3, 4, and 5 | |
68 | (as well as many minor versions of those releases). | |
69 | For a while, | |
70 | Linux libc was the standard C library in many Linux distributions. | |
738dea65 | 71 | |
383354a9 | 72 | However, notwithstanding the original motivations of the Linux libc effort, |
a59ac1b5 MK |
73 | by the time glibc 2.0 was released (in 1997), |
74 | it was clearly superior to Linux libc, | |
383354a9 MK |
75 | and all major Linux distributions that had been using Linux libc |
76 | soon switched back to glibc. | |
738dea65 | 77 | Since this switch occurred long ago, |
383354a9 MK |
78 | .I man-pages |
79 | no longer takes care to document Linux libc details. | |
80 | Nevertheless, the history is visible in vestiges of information | |
81 | about Linux libc that remain in some manual pages, | |
82 | in particular, references to | |
83 | .IR libc4 | |
84 | and | |
738dea65 | 85 | .IR libc5 . |
383354a9 MK |
86 | .SS Other C libraries |
87 | There are various other less widely used C libraries for Linux. | |
88 | These libraries are generally smaller than glibc, | |
89 | both in terms of features and memory footprint, | |
90 | and often intended for building small binaries, | |
91 | perhaps targeted at development for embedded Linux systems. | |
92 | Among such libraries are | |
fe8b1358 | 93 | .UR http://www.uclibc.org/ |
383354a9 | 94 | .I uClibc |
ab2b391a | 95 | .UE , |
fe8b1358 | 96 | .UR http://www.fefe.de/dietlibc/ |
383354a9 | 97 | .I dietlibc |
85dd46e8 | 98 | .UE , |
ba8b5873 MK |
99 | and |
100 | .UR http://www.musl-libc.org/ | |
101 | .I "musl libc" | |
102 | .UE . | |
2eaa5bec | 103 | Details of these libraries are covered by the |
383354a9 | 104 | .I man-pages |
2eaa5bec | 105 | project, where they are known. |
383354a9 | 106 | .SH SEE ALSO |
383354a9 | 107 | .BR syscalls (2), |
8e30d5ac MF |
108 | .BR getauxval (3), |
109 | .BR proc (5), | |
383354a9 MK |
110 | .BR feature_test_macros (7), |
111 | .BR man-pages (7), | |
8e30d5ac MF |
112 | .BR standards (7), |
113 | .BR vdso (7) |