當前位置:首頁 » 操作系統 » linux標准庫

linux標准庫

發布時間: 2022-05-15 13:21:43

linux里的glibc包含我們通常所說的c標准庫嗎

是的,他就是 libc 庫。 LGPL 協議的。

不過 Linux 下面不光有這一個標准 C 庫。常見的還有 uclibc 和 klibc 。

② iconv 是不是linux標准庫

linux是操作系統,不存在標准庫概念。
如果說linux所使用的c語言,它的標准庫是啥?是glibc。
iconv是 glibc 中的內容。

關於 glibc
The GNU C Library is used as the C library in the GNU systems and most systems with the Linux kernel.

參考資料:
http://en.wikipedia.org/wiki/Iconv

All recent Linux distributions contain a free implementation of iconv() as part of the GNU C Library which is the C library for current Linux systems. To use it, the GNU glibc locales need to be installed, which are provided as a separate package (usually named glibc-locale) normally installed by default.

③ linux 下 C/C++ 使用標准庫函數 ( 可能造成的內存泄露問題)

c++
用的是
delete吧..
我覺得系統會自動調用釋放內存的函數的
應該不用自己加的.
無論返回什麽結構
在內存調用完的每個函數的入口地址都是指向函數的指針阿.
就像你的例子
tm*
指向
localtime()入口地址
如果系統沒有自動釋放的話
後果將不堪設想喔..
想想全局變數帶來的危機
其實道理差不多
所以不用free了吧..
我猜的.
哈哈.

④ linux動態庫和靜態庫的區別

兩者區別:
a,靜態庫的使用需要:
1 包含一個對應的頭文件告知編譯器lib文件裡面的具體內容
2 設置lib文件允許編譯器去查找已經編譯好的二進制代碼

b,動態庫的使用:
程序運行時需要載入動態庫,對動態庫有依賴性,需要手動加入動態庫

c,依賴性:
靜態鏈接表示靜態性,在編譯鏈接之後, lib庫中需要的資源已經在可執行程序中了, 也就是靜態存在,沒有依賴性了
動態,就是實時性,在運行的時候載入需要的資源,那麼必須在運行的時候提供 需要的 動態庫,有依賴性, 運行時候沒有找到庫就不能運行了

d,區別:
簡單講,靜態庫就是直接將需要的代碼連接進可執行程序;動態庫就是在需要調用其中的函數時,根據函數映射表找到該函數然後調入堆棧執行。
做成靜態庫可執行文件本身比較大,但不必附帶動態庫
做成動態庫可執行文件本身比較小,但需要附帶動態庫
鏈接靜態庫,編譯的可執行文件比較大,當然可以用strip命令精簡一下(如:strip libtest.a),但還是要比鏈接動態庫的可執行文件大。程序運行時間速度稍微快一點。
靜態庫是程序運行的時候已經調入內存,不管有沒有調用,都會在內存里頭。靜態庫在程序編譯時會被連接到目標代碼中,程序運行時將不再需要該靜態庫。
其在編譯程序時若鏈接,程序運行時會在系統指定的路徑下搜索,然後導入內存,程序一般執行時間稍微長一點,但編譯的可執行文件比較小;動態庫是程序運行的時候需要調用的時候才裝入內存,不需要的時候是不會裝入內存的。
動態庫在程序編譯時並不會被連接到目標代碼中,而是在程序運行是才被載入,因此在程序運行時還需要動態庫存在。

動態鏈接庫的特點與優勢

首先讓我們來看一下,把庫函數推遲到程序運行時期載入的好處:

1. 可以實現進程之間的資源共享。

什麼概念呢?就是說,某個程序的在運行中要調用某個動態鏈接庫函數的時候,操作系統首先會查看所有正在運行的程序,看在內存里是否已有此庫函數的拷貝了。如果有,則讓其共享那一個拷貝;只有沒有才鏈接載入。這樣的模式雖然會帶來一些「動態鏈接」額外的開銷,卻大大的節省了系統的內存資源。C的標准庫就是動態鏈接庫,也就是說系統中所有運行的程序共享著同一個C標准庫的代碼段。

2. 將一些程序升級變得簡單。用戶只需要升級動態鏈接庫,而無需重新編譯鏈接其他原有的代碼就可以完成整個程序的升級。Windows 就是一個很好的例子。

3. 甚至可以真正坐到鏈接載入完全由程序員在程序代碼中控制。

程序員在編寫程序的時候,可以明確的指明什麼時候或者什麼情況下,鏈接載入哪個動態鏈接庫函數。你可以有一個相當大的軟體,但每次運行的時候,由於不同的操作需求,只有一小部分程序被載入內存。所有的函數本著「有需求才調入」的原則,於是大大節省了系統資源。比如現在的軟體通常都能打開若干種不同類型的文件,這些讀寫操作通常都用動態鏈接庫來實現。在一次運行當中,一般只有一種類型的文件將會被打開。所以直到程序知道文件的類型以後再載入相應的讀寫函數,而不是一開始就將所有的讀寫函數都載入,然後才發覺在整個程序中根本沒有用到它們。

靜態庫:在編譯的時候載入生成目標文件,在運行時不用載入庫,在運行時對庫沒有依賴性。
動態庫:在目標文件運行時載入,手動載入,且對庫有依賴性。

具體在開發中用到哪種庫,我覺得還是根據實際的內存大小,ROM大小,運行的速度等綜合考慮。

⑤ LINUX 標准庫下 上下左右方向鍵使用

Linux里只有getchar吧,getch只能自己定義
getchar是getc(stdin)的宏定義
getchar是將從標准輸入中讀取一個字元,然後,將該字元從unsigned char轉換成int後返回。

你所想是要將上下左右讀到,卻發現只能得到27,我想你很難找到你想要的代碼的。
這算高級代碼,不是一般的初級代碼,是有一定的技術含量的。
通常程序員是不會貼出來的。尤其是在linux下代碼。

⑥ linux中標准庫函數和非標准庫函數的區別是什麼

我也不是很清楚,談談我的理解,以c語言為例,安裝c編譯器,裡面都自帶一些功能函數庫,但不同編譯器廠商提供不同的庫以及不同的頭文件,實際上不利於程序的移植和發展,標准庫的出現實際上是統一了這個標准,提供了標准頭文件。而非標准實際上就是自定義的一些頭文件。從使用上來說,標准頭文件用<>,編譯時在系統路徑中查找,自定義頭文件用"",編譯時在用戶目錄搜索。希望對你有幫助

⑦ linux 下C標准庫是動態庫還是靜態庫,還是兩種庫都提供了

編譯器的默認設置是連接動態庫,這就要求在程序執行的時候需要的動態庫必須存在。改變編譯選項可以變為靜態連接,這樣生成的程序運行時不需要庫的支持,但是文件的尺寸一般較大。
linx的C標准庫都有,看你自己喜歡哪樣用哪樣

⑧ Linux下如何安裝C標准庫

難道fedora沒有GCC?不會吧,應該都已經有了把,如果沒有的話去下一個gcc就行了唄

⑨ 設計Linux去驅動程序的時候為什麼不能使用C的標准庫函數驅動程序使用的頭文件來自哪裡

首先你需要知道一點,標准庫函數依賴操作系統的功能,但是驅動程序並不一定需要使用這些功能。然後有些標准庫的函數和操作系統功能無關的還是可以使用的。至於使用的頭文件是來自操作系統開發者的,會有SDK

熱點內容
安卓游戲機在哪裡下載 發布:2024-10-10 21:23:48 瀏覽:461
網上買了伺服器怎麼在電腦連接失敗怎麼辦 發布:2024-10-10 21:18:35 瀏覽:962
安卓息屏壁紙在哪個文件夾 發布:2024-10-10 21:11:58 瀏覽:407
eer資料庫 發布:2024-10-10 21:06:08 瀏覽:708
ftp匿名用戶上傳 發布:2024-10-10 21:06:06 瀏覽:754
凱越原始密碼多少 發布:2024-10-10 21:06:04 瀏覽:193
捏脆泥解壓 發布:2024-10-10 20:56:25 瀏覽:705
開瀏覽器顯示腳本錯誤信息 發布:2024-10-10 20:48:14 瀏覽:11
wii安卓模擬器怎麼用 發布:2024-10-10 20:47:35 瀏覽:501
制度宣傳視頻腳本 發布:2024-10-10 20:34:05 瀏覽:576