Linux中的libc和glibc__Linux

來源:互聯網
上載者:User

一、libc庫

Linux平台提供的C標準庫包括:

一組標頭檔,定義了很多類型和宏,聲明了很多庫函數。這些標頭檔放在哪些目錄下取決於不同的編譯器,stdarg.h和stddef.h位於/usr/lib/gcc/i486-linux-gnu/4.3.2/include目錄下,stdio.h、stdlib.h、time.h、math.h、assert.h位於/usr/include目錄下。C99標準定義的標頭檔有24個,本書只介紹其中最基本、最常用的幾個。

一組庫檔案,提供了庫函數的實現。大多數庫函數在libc共用庫中,有些庫函數在另外的共用庫中,例如數學函數在libm中。在第 4 節 “共用庫”講過,通常libc共用庫是/lib/libc.so.6。

       ANSI C 函數庫是基本的 C 語言函數庫,包含了 C 語言最基本的庫函數。這個庫可以根據標頭檔劃分為 15 個部分,其中包括: 
<ctype.h>:包含用來測試某個特徵字元的函數的函數原型,以及用來轉換大小寫字母的函數原型; <errno.h>:定義用來報告錯誤條件的宏; <float.h>:包含系統的浮點數大小限制; <math.h>:包含數學庫函數的函數原型; <stddef.h>:包含執行某些計算 C 所用的常見的函數定義; <stdio.h>:包含標準輸入輸出庫函數的函數原型,以及他們所用的資訊; <stdlib.h>:包含數字轉換到文本,以及文本轉換到數位函數原型,還有記憶體配置、隨機數字以及其他實用函數的函數原型; <string.h>:包含字串處理函數的函數原型; <time.h>:包含時間和日期操作的函數原型和類型; <stdarg.h>:包含函數原型和宏,用於處理未知數值和類型的函數的參數列表; <signal.h>:包含函數原型和宏,用於處理常式執行期間可能出現的各種條件; <setjmp.h>:包含可以繞過一般函數調用並返回序列的函數的原型,即非局部跳轉; <locale.h>:包含函數原型和其他資訊,使程式可以針對所啟動並執行地區進行修改。 地區的表示方法可以使電腦系統處理不同的資料表達約定,如全世界的日期、時間、美元數和大數字; <assert.h>:包含宏和資訊,用於進行診斷,協助程式調試。 上述庫函數在其各種支援 C 語言的 IDE 中都是有的。 你要是使用fopen/memcpy等等這樣標準C的函數,當然在連結時使用到標準C庫(ANSI C),如果你使用了read/write這些glibc庫實現的函數,肯定就在連結時使用到glibc庫

       GNU C 函數庫是一種類似於第三方外掛程式的東西。由於 Linux 是用 C 語言寫的,所以 Linux 的一些操作是用 C 語言實現的,因此,GUN 組織開發了一個 C 語言的庫 以便讓我們更好的利用 C 語言開發基於 Linux 作業系統的程式。不過現在的不同的 Linux 的發行版本對這兩個函數庫有不同的處理方法,有的可能已經整合在同一個庫裡了。 

glibc下載地址:http://mirror.hust.edu.cn/gnu/

glibc是linux下面c標準庫的實現,即GNU C Library。glibc本身是GNU旗下的C標準庫,後來逐漸成為了Linux的標準c庫,而Linux下原來的標準c庫Linux libc逐漸不再被維護。Linux下面的標準c庫不僅有這一個,如uclibc(https://www.uclibc.org/)、klibc,以及上面被提到的Linux libc,但是glibc無疑是用得最多的。glibc在/lib目錄下的.so檔案為libc.so.6。


查看當前系統的 glibc 版本的兩種方法: 
1.

01 [root@Betty ~]# /lib/libc.so.6
02 GNU C Library stable release version 2.5, by Roland McGrath et al.
03 Copyright (C) 2006 Free Software Foundation, Inc.
04 This is free software; see the source for copying conditions.
05 There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
06 PARTICULAR PURPOSE.
07 Compiled by GNU CC version 4.1.2 20080704 (Red Hat 4.1.2-52).
08 Compiled on a Linux 2.6.9 system on 2013-01-08.
09 Available extensions:
10         The C stubs add-on version 2.1.2.
11         crypt add-on version 2.1 by Michael Glad and others
12         GNU Libidn by Simon Josefsson
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.