libc、glib、glibc簡介


glibc和libc都是Linux下的C函數庫:libc是Linux下的ANSI C函數庫,glibc是Linux下的GUN C函數庫。

glib是用C寫的一些工具,即C的工具庫,和libc/glibc沒有關系。GLib是一個跨平台的、用C語言編寫的五個底層庫的集合,為GNOME所使用。 GLib起初是GTK+的一部分,但到了GTK+第二版,開發者決定把跟圖形界面無關的代碼分開,這些代碼於是就組裝成了GLib。因為GLib具有跨平台特性,所以用它編寫的程序可以無需進行大的修改就可以在其他程序上編譯和運行。

glib提供了多種高級的數據結構,如內存塊、雙向和單向鏈表、哈希表、動態字符串以及字符串工具(例如詞法分析器,字符串切分等)、動態數組,平衡二叉樹、n-叉樹、鍵值存儲、關系和元組,還有帶有緩存的內存管理。Glib還實現了線程相關的函數、多線程編程以及相關的工具,例如原始變量訪問,互斥鎖,異步隊列,安全內存池,消息傳遞和日志,鈎子函數和計時器,同時消息傳遞還包含了字節序轉換和IO channel。

GLib由五個庫組成:
GObject –對象系統,包括類型系統GType
Glib
GModule
GThread
GIO


glibc是linux下面c標准庫的實現,即GNU C Library。glibc本身是GNU旗下的C標准庫,后來逐漸成為了Linux的標准c庫,而Linux下原來的標准c庫Linux libc逐漸不再被維護。

GNU C庫(英語:GNU C Library,常簡稱為glibc)是一種按照LGPL許可協議發布的,自由的,公開源代碼的,方便從網絡下載的C的編譯程序。GNU C運行期庫,是一種C函數庫,是程序運行時使用到的一些API集合,它們一般是已預先編譯好,以二進制代碼形式存在Linux類系統中,GNU C運行期庫通常作為GNU C編譯程序的一個部分發布。Glibc最初是自由軟件基金會(FSF)為其GNU操作系統所寫,但當前最主要的應用是配合Linux內核,成為GNU/Linux操作系統一個重要的組成部分。

glibc在/lib(64)目錄下的.so文件為libc.so.6。

查看當前系統的glibc版本的兩種方法:
# ls -lh /lib64/libc.so.6
lrwxrwxrwx 1 root root 12 11月 17  2015 /lib64/libc.so.6 -> libc-2.22.so

# ldd --version
ldd (GNU libc) 2.22
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.

這兩種方法都可以看到當前系統的glibc的版本是2.22。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM