亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪問(wèn)板塊 發(fā)新帖
查看: 1133 | 回復(fù): 0
打印 上一主題 下一主題

glib介紹 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2009-01-04 02:50 |只看該作者 |倒序?yàn)g覽
  首先,glib和glibc是兩個(gè)不同的東東,glibc是GNU實(shí)現(xiàn)的實(shí)現(xiàn)的一套標(biāo)準(zhǔn)C的庫(kù)函數(shù),而glib來(lái)自于gtk+中與圖形無(wú)關(guān)的部分,那么gtk+又是什么東東?沒(méi)錯(cuò),gtk+也是一套庫(kù),本來(lái)它是專門為GIMP專門開(kāi)發(fā)的一套函數(shù)庫(kù),那么GIMP又是什么東東...總之,glib就是在開(kāi)發(fā)一套圖形軟件中形成的一套庫(kù),大家都覺(jué)得挺好用就到別的軟件的開(kāi)發(fā)中也用glib,慢慢的就形成了氣候,glib就成了現(xiàn)在這個(gè)樣子。以下開(kāi)始抄襲:


  gobject是glib的精粹,glib是用C實(shí)現(xiàn)的,但在很大程序是基于面向?qū)ο笏枷朐O(shè)計(jì)的,gobject是所有類的基類。signal在其中也是一大特色,signal與操作系統(tǒng)中的signal并不一樣,它是類似消息一樣的東西,讓消息在各個(gè)對(duì)象間傳遞,但盡量降低對(duì)象間的耦合。仔細(xì)讀一下它的代碼,唯一想說(shuō)的話就是“絕!”。

動(dòng)態(tài)數(shù)組、鏈表、哈希表等通用容器,在不同的公司,在不同的時(shí)期,在不同的情況下,我們每個(gè)人對(duì)每一種容器,可能都實(shí)現(xiàn)過(guò)N次以上。甚至在同一個(gè)項(xiàng)目里,出現(xiàn)幾份鏈表的實(shí)現(xiàn),也并非罕見(jiàn)。一直在抱怨,標(biāo)準(zhǔn)C中為什么沒(méi)有類似于STL的標(biāo)準(zhǔn)容器,讓全世界的程序員在數(shù)以萬(wàn)次的重復(fù)實(shí)現(xiàn)它們。不過(guò),還算走運(yùn),有了glib,惡夢(mèng)在此終結(jié)了。glib提供了動(dòng)態(tài)數(shù)組、單/雙向鏈表、哈希表、多叉樹(shù)、平衡二叉樹(shù)、字符串等常用容器,完全是面向?qū)ο笤O(shè)計(jì)的,實(shí)現(xiàn)得非常精致。不用白不用,別客氣了。

你開(kāi)發(fā)過(guò)跨硬件平臺(tái)的軟件嗎?是不是常常為硬件平臺(tái)的差異而苦惱呢?字節(jié)順序是常見(jiàn)的問(wèn)題之一,大端格式,小端格式,還是PDP格式的?這樣差異造成的BUG會(huì)浪費(fèi)不少時(shí)間,同時(shí)讓代碼晦澀難讀。glib提供了一套完整的宏,利用這些宏編寫程序,問(wèn)題大大簡(jiǎn)化了。

你開(kāi)發(fā)過(guò)跨操作系統(tǒng)的軟件嗎?在不同的平臺(tái)下,很多函數(shù)有相同的功能,但函數(shù)原型,返回值差異巨大,也有的貌合神離,相同的名稱有著不同的意義,請(qǐng)看下面這張清單:
       動(dòng)態(tài)庫(kù)加載函數(shù)
       線程函數(shù)
       信號(hào)量函數(shù)
       互斥鎖函數(shù)
       事件函數(shù)
       字符集轉(zhuǎn)換函數(shù)
       原子操作函數(shù)
       創(chuàng)建進(jìn)程函數(shù)
       時(shí)間格式
       IO函數(shù)
為完成相同的功能,你卻要為此寫出不同的代碼。那怕只是一個(gè)簡(jiǎn)單的封裝,這么多,你煩不煩?用glib吧,它的作者們都是高手中的高手,對(duì)不同的平臺(tái)的理解程度,遠(yuǎn)遠(yuǎn)超出你和我,而且這些程序經(jīng)過(guò)大量的應(yīng)用程序測(cè)試,已經(jīng)非常的穩(wěn)定了,放心的用吧。

你寫過(guò)讀取配置文件的模塊吧,像讀取ini這樣簡(jiǎn)單格式的文件,當(dāng)然不在話下,要讀markup語(yǔ)言格式的配置文件,難度可能大了點(diǎn),雖然不是不可能,但除非是為了學(xué)習(xí),何必自己找麻煩呢。glib里提供了詞法分析、markup語(yǔ)言解析、ini文件存取等功能,你完全不用為此擔(dān)憂。

不管是命令行程序,還是GUI程序,或者后臺(tái)服務(wù)進(jìn)程,通過(guò)命令參數(shù)來(lái)控制程序的行為,都是開(kāi)發(fā)人員慣用的手法。從命令行參數(shù)取到有用的信息,不難,遍歷一遍不就行了嗎?但在每個(gè)程序中都來(lái)遍一次,你不覺(jué)得很單調(diào)嗎?我們的時(shí)間很寶貴,浪費(fèi)時(shí)間做這種事情,不值得吧。glib的作者們?cè)缈紤]到了,它提供了這樣的功能,你調(diào)用的它的函數(shù),可能輕松的取得所要的命令行參數(shù)。

對(duì)于正則表達(dá)式,Win32下的開(kāi)發(fā)人員可能用得少一點(diǎn),而在Linux下的Shell里,它卻是不可或缺之物。有沒(méi)有想到在自己的程序中使用的它呢,在有的情況下,使用正則表達(dá)式,可能會(huì)大大降低開(kāi)發(fā)的難度,提高易用性。glib也想到了這一點(diǎn),它提供了簡(jiǎn)單的正則表達(dá)式功能,當(dāng)然,用與不用完全取決于你自己。

在程序里,如果程序出錯(cuò)了,特別是調(diào)了不該調(diào)用的函數(shù),你是不是很想知道是誰(shuí)調(diào)了它?大多數(shù)時(shí)候用debuger是最好的選擇,在某些情況下,沒(méi)有debuger可用,或者在debuger里重現(xiàn)不了這個(gè)問(wèn)題,你會(huì)不會(huì)覺(jué)得很無(wú)助?別怕,glib提供了一套跨平臺(tái)的backtrace函數(shù),有了它,你可以很容易找到元兇了。

如果讀過(guò)一些大型的開(kāi)源項(xiàng)目,你會(huì)發(fā)現(xiàn),差不多每個(gè)項(xiàng)目都有一套自己的log函數(shù),用于記錄程序運(yùn)行的調(diào)試或者審計(jì)信息。也有可能,你自己都曾在不同的項(xiàng)目里實(shí)現(xiàn)過(guò)好幾次這個(gè)功能,第一次實(shí)現(xiàn)會(huì)覺(jué)得很好玩,會(huì)學(xué)到了一些東西,后來(lái)就會(huì)發(fā)現(xiàn)自己在做無(wú)用功。重復(fù)就是浪費(fèi),重復(fù)就是犯罪,glib想到了這一點(diǎn),它實(shí)現(xiàn)了一套完整的log機(jī)制,供大家在不同的項(xiàng)目中使用。

產(chǎn)生質(zhì)數(shù)的算法不難,在我們的程序里也像是星外來(lái)客,很少使用,常常忽略了它。所謂書到用時(shí)方恨少,有這樣的東東,說(shuō)不定就有用得到它的時(shí)候。glib提供了這樣的功能,同時(shí)還提供了一個(gè)較好的隨機(jī)數(shù)算法。

Linux Shell里的自動(dòng)補(bǔ)完功能很好用吧,從Linux轉(zhuǎn)移到Win32下工作的開(kāi)發(fā)人員,常常抱怨Win32的Shell里沒(méi)有這個(gè)功能,其實(shí)Win32下也是有的,把注冊(cè)表里的一個(gè)選項(xiàng)打開(kāi)就行了。不管怎么樣,總之這個(gè)功能太有用了,沒(méi)有它,你都會(huì)覺(jué)得少了點(diǎn)什么,全身不自在,glib里連這個(gè)功能都提供了,是不是很人性化呢?

內(nèi)存問(wèn)題!還是內(nèi)存問(wèn)題!如果你沒(méi)有為內(nèi)存問(wèn)題而苦惱過(guò),我都懷疑你是不是一個(gè)真正的C語(yǔ)言程序員。內(nèi)存泄露、訪問(wèn)越界、空指針、野指針和內(nèi)存優(yōu)化等問(wèn)題,是不是都曾讓你夜不能昧?有些工具可以幫助你,但這不是萬(wàn)能的良藥,好好寫你的程序才是第一要義。glib提供了一些的手段,也可以在一定程度上減輕你的痛苦。文章出處:
http://www.diybl.com/course/6_system/linux/Linuxjs/20081012/150268.html


本文來(lái)自ChinaUnix博客,如果查看原文請(qǐng)點(diǎn):http://blog.chinaunix.net/u3/90383/showart_1771696.html
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP