日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

Ubuntu Linux---GNU libc庫

除了libc和libm庫,UNIX系統(tǒng)庫沒有其他標準的命名規(guī)范 。Linux上的一些系統(tǒng)庫可能和UNIX平臺上庫的名稱不同,這就需要知道Linux上各庫所包含和支持的功能 。表3-2根據(jù)所支持的功能列舉了一些Linux系統(tǒng)庫 。
;
;下面列出了GNU libc庫所包含的庫文件以及對應的描述(注釋5):
- ld.so,為使用了共享庫的可執(zhí)行程序提供的一個輔助程序;
- libBrokenLocal.[a,so],Mozilla等應用程序用以解決被破壞的locale的庫文件;
- libSegFault.so,段錯誤信號處理器,它試圖捕獲段錯誤信號 。
- libanl.[a,so],異步的名稱查詢庫 。
- libbsd-compat.a,在Linux上運行BSD程序時需要的庫 。
- libc.[a,so],最主要的C庫(常用的C函數(shù)的集合) 。
- libcrypt.[a,so],加密庫 。
- libdl.[a,so],動態(tài)鏈接接口庫 。
- libg.a,g運行時庫 。
- libieee.a,IEEE浮點運算庫 。
- libm.[a,so],數(shù)學庫 。
- libmcheck.a,包含啟動時運行的代碼 。
- libmemusage.so,memusage用來收集應用程序內(nèi)存使用情況的庫 。
- libnsl.a,網(wǎng)絡服務庫 。
- libnss_comkpat.so,libnss_dns.so, libnss_files.so, libnss_hesiod.so, libnss_nis.so, libnss_nisplus.so,NSS(Name Service Switch)庫,包含解析主機名、用戶名、組名、別名、服務、協(xié)議等的函數(shù) 。
- libpcprofile.so,包含一些跟蹤統(tǒng)計代碼行消耗CPU時間的概要分析(profiling)函數(shù) 。
- libpthread.[a,so],POSIX線程庫 。
- libresolv.[a,so],包含為網(wǎng)絡域名服務器創(chuàng)建、發(fā)送、解釋網(wǎng)絡包的函數(shù) 。
- librpcsvc.a,包含提供各種RPC服務的函數(shù) 。
- librt.[a,so],包含POSIX1.b實時擴展所定義的大部分接口函數(shù) 。
- libthread_db.so,包含開發(fā)多線程程序調(diào)試器的函數(shù) 。
- libutil.[a,so],包含常用的UNIX工具使用的“標準函數(shù) 。
上面這些庫大多位于/usr/lib目錄,也有一些在/lib目錄下,例如libSegFault.so.
[1][2];[3];[4];[5];下一頁
;3.1.1 glibc遵循的標準
GNU glibc發(fā)布了一個描述其所遵循的標準的報告(注釋6) 。該報告同時也列出了GNU libc需要改進的地方 。寫作本書時,該報告顯示GNU libc通過了FIPS POSIX90、POSIX96、UNIX98、ANSI、C89/99,和ISO9899標準的頭文件一致性檢查 。所有主要Linux發(fā)行版的glibc也都遵循LSB規(guī)范 。
3.2 GNU科學庫
把進行高性能計算的應用程序移植到Linux上需要一個支持庫,該庫要與UNIX平臺上的科學庫非常匹配 。Linux上類似的庫叫GNU科學庫(GNU Scientific Library,簡寫作GSL) 。GSL是一系列數(shù)學運算例程的集合 。這些例程是用C語言重新編寫的,并且給編程人員提供了一個新式的API模式---允許編程人員為各高級語言編寫包裹函數(shù)(wrapper) 。這些源代碼使用的是GPL發(fā)布許可 。
GNU科學庫包含了數(shù)學運算領域的很多內(nèi)容 。表3-3列出了GNU科學庫提供的例程 。
;這些例程的用法在GSL手冊(注釋7)中有詳盡的描述,包括函數(shù)的定義、示例程序,以及函數(shù)實現(xiàn)的算法所引用的論文 。
3.3 共享庫
我們所移植過的大多數(shù)應用程序都使用了共享庫 。然而,不同的操作系統(tǒng)在創(chuàng)建和命名共享庫時卻不盡相同 。Linux上,共享庫可以有不同的文件擴展名,例如,共享庫可以以.so或.so.1.0結(jié)束 。以.so.x.x(x為數(shù)字)結(jié)尾的共享庫叫版本化庫 。第一個數(shù)字代表大版本號,第二個數(shù)字代表小版本號 。有些情況下,共享庫的擴展名還可以是.so.x.x.x(x為數(shù)字)的形式,這里最后一個數(shù)字代表發(fā)布號,并且是可選的 。下面給出了共享庫文件名的格式:
(代碼)p58 第11行,lib.so...
大版本號、小版本號,以及發(fā)布號的變化反映了對共享庫所作的不同類型的修改 。下面是對增大大版本號、小版本號和發(fā)布號的一些指導:

推薦閱讀