以下內容參考自:
1. centos
/lib/i386-linux-gnu/libc.so.6
或
rpm -qi glibc
或
ls -l /lib/libc.so.6
2. ubuntu
ls -l /lib/i386-linux-gnu/libc.so.6 (32bit)ls -l /lib/x86_64-linux-gnu/libc.so.6(64bit)
或
apt-cache show libc6
有時我們經常需要檢視當前系統的glibc版本,可以這樣檢視:
/lib/libc.so.6
有時:/lib/x86-64-linux/libc.so.6
把這個檔案當命令執行一下
為什麼這個庫可以直接run呢? 原來在libc的**中有一點小手腳:
makerules:586:ldflags-c.so += -e __libc_main
csu/version.c:71:__libc_main (void)
void
__libc_main (void)
或者:因為ldd命令也是glibc提供的,所以也能檢視
ldd --version
glibc是什麼,以及與gcc的關係?
glibc是gnu發布的libc庫,也即c執行庫。glibc是linux 系統中最底層的api(應用程式開發介面),幾乎其它任何的執行庫都會倚賴於glibc。glibc除了封裝linux作業系統所提供的系統服務外,它本 身也提供了許多其它一些必要功能服務的實現,主要的如下:
(1)string,字串處理
(2)signal,訊號處理
(3)dlfcn,管理共享庫的動態載入
(4)direct,檔案目錄操作
(5)elf,共享庫的動態載入器,也即interpreter
(6)iconv,不同字符集的編碼轉換
(7)inet,socket介面的實現
(8)intl,國際化,也即gettext的實現
(9)io
(10)linuxthreads
(11)locale,本地化
(12)login,虛擬終端裝置的管理,及系統的安全訪問
(13)malloc,動態記憶體的分配與管理
(14)nis
(15)stdlib,其它基本功能
gcc 是編譯器,基本上 linux 下所有的程式(包括核心)都是 gcc 編譯的,libc 當然也是。
gcc 和 libc 是互相依賴的兩個軟體,它們合作的方式類似 linux 系統的 "自舉"。先在乙個可以執行的帶有老 libc 和 gcc 的系統上,用老 gcc 編譯出乙個新版本的 gcc + 老 libc,再用這個新 gcc 編譯出乙個新 gcc + 新 libc,再用這套東東編譯整個新系統。
glib版本檢視
just execute:
ldd --version
which comes with glibc package
linux 檢視glibc版本
glibc是gnu發布的libc庫,也即c執行庫。glibc是linux 系統中最底層的api 應用程式開發介面 幾乎其它任何的執行庫都會倚賴於glibc。glibc除了封裝linux作業系統所提供的系統服務外,它本 身也提供了許多其它一些必要功能服務的實現,主要的如下 1 string,字串處理 ...
glibc版本公升級
檢視系統glibc庫版本可使用如下命令 strings lib64 libc.so 6 grep glibc centos6.5輸出如下glibc版本列表,從此圖可以看出系統最高支援glibc的2.12版本 ll lib64 libc 可以看到此時的libc.so.6是libc 2.12.so的別名...
libc庫 glibc庫和系統呼叫
linux系統呼叫這部分經常出現兩個詞 libc庫和封裝函式,不知道你是否清楚它們的含義?libc 1.libc概念 libc是stantard c library的簡稱,它是符合ansi c標準的乙個標準函式庫。libc庫提供c語言中所使用的巨集,型別的定義,字串操作符,數學計算函式以及輸入輸出函...