青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

我自閑庭信步,悠然自得,不亦樂(lè)乎.

                                       ------ Keep life simple
GMail/GTalk/MSN:huyi.zg@gmail.com

 

取自ACE中的bit操作宏

#?define?ACE_BIT_ENABLED(WORD,?BIT)?(((WORD)? & ?(BIT))? != ? 0 )
#?define?ACE_BIT_DISABLED(WORD,?BIT)?(((WORD)?
& ?(BIT))? == ? 0 )
#?define?ACE_BIT_CMP_MASK(WORD,?BIT,?MASK)?(((WORD)?
& ?(BIT))? == ?MASK)
#?define?ACE_SET_BITS(WORD,?BITS)?(WORD?
|= ?(BITS))
#?define?ACE_CLR_BITS(WORD,?BITS)?(WORD?
&= ? ~ (BITS))

附上C中常用的位運(yùn)算用法,取自《C Primer Plus》

掩碼:即mask,通常為某一個(gè)位為1,而其他位都為0的byte,如00000100。

1.把byte中除掩碼相同的位外,全部置0,掩碼位不變
flags?&=?mask
?? 10101111 & 00000100 = 00000100

2.打開(kāi)位:打開(kāi)特定的位,其他位不變。
flags?|=?MASK
00001000 | 00000100 = 00001100

3.關(guān)閉位:關(guān)閉特定位,但不影響其他位
flags?&=?~MASK
11100101 &=? ~10000000 = 01100101

4.轉(zhuǎn)置位:一個(gè)位如果打開(kāi),則關(guān)閉;如果關(guān)閉,則打開(kāi)
flags?^=?MASK
11100101 ^=? 10000000 = 01100101
11100101 ^=? 00010000 = 11110101

5.查看一個(gè)位的值:
if?((flag?&?MASK)?==?MASK)
????do_some_work();

?

posted @ 2006-04-03 10:08 HuYi 閱讀(660) | 評(píng)論 (0)編輯 收藏

TIM中網(wǎng)絡(luò)模型變更

一直都隱隱約約的感覺(jué)TIM的網(wǎng)絡(luò)模型還是有點(diǎn)問(wèn)題,但卻總說(shuō)不出具體問(wèn)題來(lái)。時(shí)不時(shí)就會(huì)想起這個(gè)事,今天在車上,終于恍然大悟。
也許是受wildfire和jabberd2的影響太深了(特別是wildfire),TIM中網(wǎng)絡(luò)和業(yè)務(wù)處理的聯(lián)系過(guò)于緊密,從套接口讀到數(shù)據(jù)流后,馬上就進(jìn)入XML的PullParser分析階段,雖然之后有刻意的分離網(wǎng)絡(luò)操作和業(yè)務(wù)邏輯,但并不徹底。
有時(shí)候業(yè)務(wù)處理還是能夠感覺(jué)到網(wǎng)絡(luò)的存在,我覺(jué)得這是個(gè)不良的設(shè)計(jì)。
讓我耿耿于懷的,是Reactor的單線程特性。或許在某些情況下這是它的優(yōu)勢(shì),但運(yùn)用不當(dāng),就會(huì)成劣勢(shì)。現(xiàn)在的TIM把業(yè)務(wù)邏輯和網(wǎng)絡(luò)IO都擠進(jìn)了Reactor所控制的線程中,只要存在一點(diǎn)點(diǎn)的阻塞,吞吐率將大打折扣。
wildfire敢把網(wǎng)絡(luò)和業(yè)務(wù)綁得那么緊,是因?yàn)樗捎玫膒er-request,per-thread的模型,網(wǎng)絡(luò)IO引起的阻塞不會(huì)影響到其他request處理。我也沒(méi)有wildfire那么大的膽子采用per-request,per-thread,上下文切換的消耗不說(shuō),畢竟線程的數(shù)量也是有限制的,我很懷疑到底能承受多少連接數(shù),如果沒(méi)有記錯(cuò),Linux沒(méi)有重編譯內(nèi)核,一個(gè)進(jìn)程內(nèi)最多是1024個(gè)線程,Windows能多些,好像是65535,數(shù)據(jù)可能不準(zhǔn)確,但也說(shuō)明了線程資源是有限的。同時(shí),WFMOReactor在Windows下每個(gè)線程內(nèi)可同時(shí)監(jiān)視的句柄數(shù)(62個(gè)),也似乎太少了,這點(diǎn)也讓我煩惱。
仔細(xì)推敲后,我認(rèn)為還是把網(wǎng)絡(luò)和業(yè)務(wù)完全脫離比較好一點(diǎn),用至少一個(gè)線程專門操作套接口,突破WaitForMultipleObjects的句柄數(shù)限制,再用另外一個(gè)線程來(lái)完成業(yè)務(wù)。在業(yè)務(wù)線程上使用管道過(guò)濾器模式來(lái)一步一步的處理數(shù)據(jù)。當(dāng)Reactor線程接收到數(shù)據(jù)后,放進(jìn)MessageBlock里面,用Task框架來(lái)處理。
這種模型確實(shí)解決了原先的諸多毛病,但如果在這個(gè)時(shí)候改網(wǎng)絡(luò)模型,對(duì)整個(gè)項(xiàng)目是個(gè)不小的沖擊,極有可能導(dǎo)致在計(jì)劃的時(shí)間內(nèi)不能完成項(xiàng)目。猶豫了一下,為了保證品質(zhì),最終還是在SubVersion上創(chuàng)建了新的試驗(yàn)分支。
module.jpg

posted @ 2006-03-27 22:54 HuYi 閱讀(498) | 評(píng)論 (0)編輯 收藏

[2006.03.26]噩耗傳來(lái)

2006,狗年,我24,本命年。
2006,狗年,小姨36,也是本命年。
早上醒來(lái),接到母親的電話,告訴我小姨爹癌癥擴(kuò)散,就快去世了。雖然一直知道小姨爹的病,但沒(méi)想到會(huì)這么嚴(yán)重。
小姨媽兩口,最疼愛(ài)我的人,我走到今天,他們是給我?guī)椭畲蟮娜耍业亩魅恕?br> 我媽以前是三班倒,幾個(gè)姨媽在還是孩子的時(shí)候,就開(kāi)始幫我媽帶孩子,對(duì)我是疼愛(ài)有加,特別是小姨媽,結(jié)婚后一直無(wú)子,也沒(méi)有領(lǐng)養(yǎng),一直把我當(dāng)親兒看待。
前兩天父親打電話來(lái),叫我有空多打打電話給小姨爹的時(shí)候,我就開(kāi)始懷疑,但父親卻不告訴我真實(shí)情況。
今天早上接到母親電話,真的很傷心,我也無(wú)法用言語(yǔ)來(lái)表達(dá),當(dāng)時(shí)甚至沒(méi)有哭出來(lái),已經(jīng)木了,過(guò)了十幾分鐘才淚上眼眶。
平靜下來(lái),給姨爹通了電話,他還不知道自己的病情,但聽(tīng)得出來(lái)確實(shí)虛弱了很多。偏偏電話信號(hào)又不好,沒(méi)說(shuō)幾句就斷了。
在這里祝福姨爹,一定會(huì)有好轉(zhuǎn)的!!!

posted @ 2006-03-26 23:14 HuYi 閱讀(355) | 評(píng)論 (2)編輯 收藏

今天逛了趟書(shū)店,買了幾本書(shū)^^

本來(lái)是陪朋友去買《UNIX編程藝術(shù)》,不過(guò)著實(shí)看見(jiàn)幾本很不錯(cuò)的書(shū),也買了幾本^^
1。《Linux內(nèi)核完全剖析》
看過(guò)作者的另一本書(shū)《Linux1.1源碼完全注釋》,覺(jué)得不錯(cuò),國(guó)內(nèi)有這個(gè)水平的人可能不少,但能做到這么細(xì)致的人就不多了。
大概翻了一下,決定買下了。
2。《Linux Application Development》(linux應(yīng)用程序開(kāi)發(fā)第二版)
這類書(shū)籍看過(guò)不少了,本不應(yīng)再買,但隨手翻了一頁(yè),看到了epoll,這是Linux2.6之后才加入的新特性,看來(lái)書(shū)挺新的,應(yīng)該是近年才編寫(xiě)的,又看了一下目錄,對(duì)Linux下的絕大多數(shù)編程任務(wù)都有描述,買一本做手冊(cè)吧。
3。《精通UNIX Shell腳本編程》
開(kāi)發(fā)UNIX/Linux程序也很久了,但確實(shí)沒(méi)有認(rèn)真學(xué)過(guò)腳本,也不想像C/C++一樣學(xué)腳本,正好看見(jiàn)這本書(shū),都是平時(shí)經(jīng)常用的腳本例子,大多數(shù)情況下用這里的例子稍微改改就能滿足需要了:)
4。《GCC技術(shù)參考大全》
這書(shū)可買可不買,GCC網(wǎng)站上就有很詳細(xì)的說(shuō)明,當(dāng)手冊(cè)用吧。
5。《我的編程感悟》
快離開(kāi)書(shū)店時(shí)忽然看見(jiàn)的,聞此書(shū)大名很久了,也一直在作者“云風(fēng)”的郵件列表里,對(duì)大俠的佩服猶如滔滔江水連綿不絕呀,也許在這本書(shū)中,能找到云大俠的過(guò)去,也作為對(duì)云大俠的支持,買了一本。回家的車上看了一些,覺(jué)得很不錯(cuò),向大家推薦。

posted @ 2006-03-25 15:38 HuYi 閱讀(439) | 評(píng)論 (0)編輯 收藏

給大家共享一個(gè)基本算法包

下載地址???
http://m.shnenglu.com/Files/huyi/datastruct.rar


包含內(nèi)容:
下面是文檔包含的內(nèi)容:
二分查找1.c
二分查找2.c
二叉樹(shù).c
其它

單元加
單循環(huán)鏈表.c
單鏈表.c
圖.c
字符
定長(zhǎng)串.c

小寫(xiě)數(shù)字轉(zhuǎn)為大寫(xiě)數(shù)字
帶頭結(jié)點(diǎn)雙鏈循環(huán)線性表.c
底層編程
效驗(yàn)算法
數(shù)學(xué)問(wèn)題
數(shù)據(jù)結(jié)構(gòu)
數(shù)組
文件程序
求進(jìn)制
漢諾塔
硬幣情況
逆陣
鏈串.c
鏈棧.c
鏈隊(duì)列.c
問(wèn)題算法
順序棧.c
順序表.c
順序隊(duì)列.c

./其它:
c語(yǔ)言窗體實(shí)例.zip
傻瓜遞歸.c
冒泡法改進(jìn).c
小字庫(kù)DIY-.c
小字庫(kù)DIY.c
小白鼠鉆迷宮.c
掃描碼.C
挽救軟盤.c
漢字字模.c
神經(jīng)元模型.c
窮舉搜索法.c
簡(jiǎn)單數(shù)據(jù)庫(kù).c
編程漢字問(wèn)題.txt
編隨機(jī)數(shù).c
試題.C
遞堆法.C

./單元加:
erre2.c
erre.c
數(shù)組完全單元.c
棧單元加.c

./字符:
單詞倒轉(zhuǎn).c
反出字符.c
回文.c
字符串查找.c
字符編輯.c
字符編輯技術(shù)(插入和刪除) .c

./小寫(xiě)數(shù)字轉(zhuǎn)為大寫(xiě)數(shù)字:
小寫(xiě)數(shù)字轉(zhuǎn)換成大寫(xiě)數(shù)字1.c
小寫(xiě)數(shù)字轉(zhuǎn)換成大寫(xiě)數(shù)字2.c
小寫(xiě)數(shù)字轉(zhuǎn)換成大寫(xiě)數(shù)字3.c

./底層編程:
asm.c
C標(biāo)志符命名源程序.c
ping.c
winsock2.c
時(shí)間陷阱.c
檢出錯(cuò)誤.c
檢測(cè)鼠標(biāo).c

./效驗(yàn)算法:
C.BAT
CMCRC.COM
Crctable.c

./數(shù)學(xué)問(wèn)題:
乘法矩陣.c
涼東問(wèn)題
十五人排序.c
疊代整除.c
四分砝碼.c
圓周率
多位階乘2.c
多位階乘.c
大加數(shù).c
大小倍約.c
大整數(shù).c
完數(shù).c
小孩分糖果.c
小明買書(shū)
平方根.c
數(shù)學(xué)算法
桃子猴問(wèn)題
燈塔問(wèn)題.c
百雞百錢.c
簡(jiǎn)單計(jì)算器.c
蘋(píng)果糾紛
遞推.c
邏輯移動(dòng).c
階乘遞歸.c
阿姆斯特朗數(shù).c
黑白.c

./數(shù)學(xué)問(wèn)題/涼東問(wèn)題:
32.c
re.c
數(shù)組遞歸退出2.c
數(shù)組遞歸退出.c

./數(shù)學(xué)問(wèn)題/圓周率:
圓周率.c
狐貍圓周率.cpp

./數(shù)學(xué)問(wèn)題/小明買書(shū):
小明買書(shū).c
小明買書(shū).cpp

./數(shù)學(xué)問(wèn)題/數(shù)學(xué)算法:
余弦曲線.c
余弦直線.c
符號(hào)圖形.c
繪制圓.c

./數(shù)學(xué)問(wèn)題/桃子猴問(wèn)題:
_notes
乘方函數(shù)桃子猴.c
桃子猴.c
猴子和桃.c
遞歸桃猴.c
題目.txt

./數(shù)學(xué)問(wèn)題/桃子猴問(wèn)題/_notes:

./數(shù)學(xué)問(wèn)題/蘋(píng)果糾紛:
ff.c
蘋(píng)果分法.c

./數(shù)據(jù)結(jié)構(gòu):
二叉排序樹(shù).c
二叉樹(shù)實(shí)例.c
單鏈表
雙鏈表正排序.c
各種排序法.c
哈夫曼算法.c
哈慢樹(shù).c
大整數(shù).c
建樹(shù)和遍歷.c
排序法.c
推箱子.c
數(shù)據(jù)結(jié)構(gòu)2.c
數(shù)據(jù)結(jié)構(gòu)3.c
數(shù)據(jù)結(jié)構(gòu).c
無(wú)向圖.c
棧操作.c
線性順序存儲(chǔ)結(jié)構(gòu).c
線索化二叉樹(shù).c
迷宮.c
迷宮問(wèn)題.c
逆波蘭計(jì)算器.c
遞歸車廂.c
隊(duì)列.c

./數(shù)據(jù)結(jié)構(gòu)/單鏈表:
ww.c
冒泡排序.c
單鏈表1.c
單鏈表2.c
單鏈表.c
單鏈表倒序.c
單鏈表的處理全集.c
建立鏈表1.c
節(jié)點(diǎn).c
質(zhì)因子.c
鏈表十五人排序.c
鏈表(遞歸).c

./數(shù)組:
數(shù)字移動(dòng).c
數(shù)組操作.c
楊輝三角形.c
桶排序.c
矩陣轉(zhuǎn)換.c
螺旋數(shù)組1.c
螺旋數(shù)組2.c

./文件程序:
實(shí)例1.c
實(shí)例2.c
實(shí)例3.c
文件加密.c
文件復(fù)制.c
文件連接.c
自我復(fù)制.c
讀寫(xiě)文本文件.c
輸出自已.c

./求進(jìn)制:
16進(jìn)制10進(jìn)制.c
二進(jìn)制數(shù)2.c
二進(jìn)制數(shù).c

./漢諾塔:
四塔1.c
四塔2.c
換位遞歸.c
漢諾塔2.c
漢諾塔.c
諾漢塔畫(huà)圖版.c
非遞歸.c

./硬幣情況:
for循環(huán)的.c
硬幣分法.c

./逆陣:
簡(jiǎn)單逆陣.c
逆矩陣.c
逆陣.c

./問(wèn)題算法:
N皇后問(wèn)題回溯算法.c
萬(wàn)年歷
動(dòng)態(tài)計(jì)算網(wǎng)絡(luò)最長(zhǎng)最短路線.c
矩陣乘法動(dòng)態(tài)規(guī)劃.c
網(wǎng)絡(luò)最短路徑Dijkstra算法.c
貨郎擔(dān)分枝限界圖形演示.c
貨郎擔(dān)限界算法.c
騎士遍歷

./問(wèn)題算法/萬(wàn)年歷:
萬(wàn)年歷.c
萬(wàn)年歷的算法 .c

./問(wèn)題算法/騎士遍歷:
騎士遍歷1.c
騎士遍歷2.c
騎士遍歷回逆.c

posted @ 2006-03-23 08:51 HuYi 閱讀(1981) | 評(píng)論 (4)編輯 收藏

今天買了一個(gè)共享軟件:CyberArticle

在您上網(wǎng)的時(shí)候, 您一定會(huì)遇到很到好文章,怎么保存?用IE的保存功能?過(guò)不了多久,您就會(huì)忘記,保存在那里了。使用CyberArticle保存網(wǎng)頁(yè),過(guò)程非常簡(jiǎn)單,通過(guò)鼠標(biāo)右鍵,您就可以快速的將文章保存起來(lái)。還有,您可能更希望將好看的Flash動(dòng)畫(huà)保存下來(lái),這次,連IE也無(wú)能為力了。怎么辦?使用CyberArticle,您可以將這些內(nèi)容完整無(wú)缺的保存下來(lái)。
http://www.wizissoft.com/cn/

其實(shí)我用這個(gè)軟件很久了,真的很方便。不過(guò)我一直用的破解版:b
今天上它主頁(yè)看了看,注冊(cè)費(fèi)用挺公道的,25元,可以接受,作為對(duì)作者的支持,用信用卡在網(wǎng)上買了一份,幾分鐘注冊(cè)碼就發(fā)到了。

向需要類似軟件的朋友推薦。

posted @ 2006-03-22 15:18 HuYi 閱讀(393) | 評(píng)論 (0)編輯 收藏

推薦一個(gè)sniffer - ethereal

今天同事推薦給我的,確實(shí)比較好用,有對(duì)應(yīng)多個(gè)平臺(tái)的版本,而且是免費(fèi)的。
之前一直用的WPE,那玩意兒雖然也不錯(cuò),但老是被諾頓認(rèn)為是病毒,用ethereal就沒(méi)有這個(gè)問(wèn)題了,功能也更強(qiáng)大。用來(lái)進(jìn)行少量信息收集挺不錯(cuò)的。如果要7*24的收集大量信息,還是tcpdump吧。

附上網(wǎng)址:
http://www.ethereal.com/

posted @ 2006-03-21 14:07 HuYi 閱讀(355) | 評(píng)論 (0)編輯 收藏

web服務(wù)器的架構(gòu)設(shè)計(jì)

又有感興趣的話題了:
liu chuncheng:
前兩天看了一篇有關(guān)IOCP的文章,里面提到apache。文章作者的觀點(diǎn)是用IOCP模型的IIS應(yīng)該比進(jìn)程模型的apache的性能要高。我想針對(duì)這個(gè)主題發(fā)起討論。
首先說(shuō)一下我的觀點(diǎn):
1、IOCP是windows下比較高效的一個(gè)異步IO模型,他可以克服I/O設(shè)備慢速的缺點(diǎn),從而可以構(gòu)建一個(gè)高效的網(wǎng)絡(luò)通訊模型。
2、但我認(rèn)為IOCP也不是萬(wàn)能的,只有合適的應(yīng)用才會(huì)發(fā)揮他的長(zhǎng)處。比如游戲服務(wù)器,或者流媒體服務(wù)器等。
3、但我認(rèn)為對(duì)于web服務(wù)器它不是最好的方案,原因如下:
? ? a、web服務(wù)器的連接之間的數(shù)據(jù)是獨(dú)立的,沒(méi)有聯(lián)系的,那么每個(gè)連接的數(shù)據(jù)用一個(gè)線程或者進(jìn)程來(lái)處理是很高效的,處理完之后就退出了,再?zèng)]有任何其它的
開(kāi)銷。如果用IOCP那么就要放到隊(duì)列里,從線程池里面頻繁的切換線程來(lái)處理數(shù)據(jù),這種開(kāi)銷還是比較大的。只是web的資源需要做同步的機(jī)制。

b、web服務(wù)器是基于短連接的,區(qū)別于游戲服務(wù)器的長(zhǎng)連接,就是不需要對(duì)這個(gè)連接做更多的管理。相當(dāng)于一個(gè)連接上來(lái)之后就做一個(gè)任務(wù),做完任務(wù)之后就一拍兩散
? ? 綜合上面的兩點(diǎn),化繁為簡(jiǎn),我認(rèn)為對(duì)于web服務(wù)器用最簡(jiǎn)單的網(wǎng)絡(luò)模型——1連接+1線程,可能也是比較好的方案。

? ? 一家之言,歡迎大家拍磚!
http://groups.google.com/group/dev4server/browse_thread/thread/6cd19a9afc1fd295/4624a8b4bf162e6f#4624a8b4bf162e6f

posted @ 2006-03-20 15:07 HuYi 閱讀(585) | 評(píng)論 (0)編輯 收藏

GCC參數(shù)祥解

[介紹]
gcc and g++分別是gnu的c & c++編譯器 gcc/g++在執(zhí)行編譯工作的時(shí)候,總共需要4步

1.預(yù)處理,生成.i的文件[預(yù)處理器cpp]
2.將預(yù)處理后的文件不轉(zhuǎn)換成匯編語(yǔ)言,生成文件.s[編譯器egcs]
3.有匯編變?yōu)槟繕?biāo)代碼(機(jī)器代碼)生成.o的文件[匯編器as]
4.連接目標(biāo)代碼,生成可執(zhí)行程序[鏈接器ld]
[參數(shù)詳解]
-x language filename
  設(shè)定文件所使用的語(yǔ)言,使后綴名無(wú)效,對(duì)以后的多個(gè)有效.也就是根據(jù)約定C語(yǔ)言的后
綴名稱是.c的,而C++的后綴名是.C或者.cpp,如果你很個(gè)性,決定你的C代碼文件的后綴
名是.pig 哈哈,那你就要用這個(gè)參數(shù),這個(gè)參數(shù)對(duì)他后面的文件名都起作用,除非到了
下一個(gè)參數(shù)的使用。
  可以使用的參數(shù)嗎有下面的這些
  `c', `objective-c', `c-header', `c++', `cpp-output', `assembler', and `a
ssembler-with-cpp'.
  看到英文,應(yīng)該可以理解的。
  例子用法:
  gcc -x c hello.pig
  
-x none filename
  關(guān)掉上一個(gè)選項(xiàng),也就是讓gcc根據(jù)文件名后綴,自動(dòng)識(shí)別文件類型
  例子用法:
  gcc -x c hello.pig -x none hello2.c
  
-c
  只激活預(yù)處理,編譯,和匯編,也就是他只把程序做成obj文件
  例子用法:
  gcc -c hello.c
  他將生成.o的obj文件
-S
  只激活預(yù)處理和編譯,就是指把文件編譯成為匯編代碼。
  例子用法
  gcc -S hello.c
  他將生成.s的匯編代碼,你可以用文本編輯器察看
-E
  只激活預(yù)處理,這個(gè)不生成文件,你需要把它重定向到一個(gè)輸出文件里面.
  例子用法:
  gcc -E hello.c > pianoapan.txt
  gcc -E hello.c | more
  慢慢看吧,一個(gè)hello word 也要與處理成800行的代碼
-o
  制定目標(biāo)名稱,缺省的時(shí)候,gcc 編譯出來(lái)的文件是a.out,很難聽(tīng),如果你和我有同感
,改掉它,哈哈
  例子用法
  gcc -o hello.exe hello.c (哦,windows用習(xí)慣了)
  gcc -o hello.asm -S hello.c
-pipe
  使用管道代替編譯中臨時(shí)文件,在使用非gnu匯編工具的時(shí)候,可能有些問(wèn)題
  gcc -pipe -o hello.exe hello.c
-ansi
  關(guān)閉gnu c中與ansi c不兼容的特性,激活ansi c的專有特性(包括禁止一些asm inl
ine typeof關(guān)鍵字,以及UNIX,vax等預(yù)處理宏,
-fno-asm
  此選項(xiàng)實(shí)現(xiàn)ansi選項(xiàng)的功能的一部分,它禁止將asm,inline和typeof用作關(guān)鍵字。
    
-fno-strict-prototype
  只對(duì)g++起作用,使用這個(gè)選項(xiàng),g++將對(duì)不帶參數(shù)的函數(shù),都認(rèn)為是沒(méi)有顯式的對(duì)參數(shù)
的個(gè)數(shù)和類型說(shuō)明,而不是沒(méi)有參數(shù).
  而gcc無(wú)論是否使用這個(gè)參數(shù),都將對(duì)沒(méi)有帶參數(shù)的函數(shù),認(rèn)為城沒(méi)有顯式說(shuō)明的類型

  
-fthis-is-varialble
  就是向傳統(tǒng)c++看齊,可以使用this當(dāng)一般變量使用.
  
-fcond-mismatch
  允許條件表達(dá)式的第二和第三參數(shù)類型不匹配,表達(dá)式的值將為void類型
  
-funsigned-char
-fno-signed-char
-fsigned-char
-fno-unsigned-char
  這四個(gè)參數(shù)是對(duì)char類型進(jìn)行設(shè)置,決定將char類型設(shè)置成unsigned char(前兩個(gè)參
數(shù))或者 signed char(后兩個(gè)參數(shù))
  
-include file
  包含某個(gè)代碼,簡(jiǎn)單來(lái)說(shuō),就是便以某個(gè)文件,需要另一個(gè)文件的時(shí)候,就可以用它設(shè)
定,功能就相當(dāng)于在代碼中使用#include<filename>
  例子用法:
  gcc hello.c -include /root/pianopan.h
  
-imacros file
  將file文件的宏,擴(kuò)展到gcc/g++的輸入文件,宏定義本身并不出現(xiàn)在輸入文件中
  
-Dmacro
  相當(dāng)于C語(yǔ)言中的#define macro
  
-Dmacro=defn
  相當(dāng)于C語(yǔ)言中的#define macro=defn
  
-Umacro
  相當(dāng)于C語(yǔ)言中的#undef macro
-undef
  取消對(duì)任何非標(biāo)準(zhǔn)宏的定義
  
-Idir
  在你是用#include"file"的時(shí)候,gcc/g++會(huì)先在當(dāng)前目錄查找你所制定的頭文件,如
果沒(méi)有找到,他回到缺省的頭文件目錄找,如果使用-I制定了目錄,他
  回先在你所制定的目錄查找,然后再按常規(guī)的順序去找.
  對(duì)于#include<file>,gcc/g++會(huì)到-I制定的目錄查找,查找不到,然后將到系統(tǒng)的缺
省的頭文件目錄查找
  
-I-
  就是取消前一個(gè)參數(shù)的功能,所以一般在-Idir之后使用
  
-idirafter dir
  在-I的目錄里面查找失敗,講到這個(gè)目錄里面查找.
  
-iprefix prefix
-iwithprefix dir
  一般一起使用,當(dāng)-I的目錄查找失敗,會(huì)到prefix+dir下查找
  
-nostdinc
  使編譯器不再系統(tǒng)缺省的頭文件目錄里面找頭文件,一般和-I聯(lián)合使用,明確限定頭
文件的位置
  
-nostdin C++
  規(guī)定不在g++指定的標(biāo)準(zhǔn)路經(jīng)中搜索,但仍在其他路徑中搜索,.此選項(xiàng)在創(chuàng)libg++庫(kù)
使用
  
-C
  在預(yù)處理的時(shí)候,不刪除注釋信息,一般和-E使用,有時(shí)候分析程序,用這個(gè)很方便的

  
-M
  生成文件關(guān)聯(lián)的信息。包含目標(biāo)文件所依賴的所有源代碼你可以用gcc -M hello.c
來(lái)測(cè)試一下,很簡(jiǎn)單。
  
-MM
  和上面的那個(gè)一樣,但是它將忽略由#include<file>造成的依賴關(guān)系。
  
-MD
  和-M相同,但是輸出將導(dǎo)入到.d的文件里面
  
-MMD
  和-MM相同,但是輸出將導(dǎo)入到.d的文件里面
  
-Wa,option
  此選項(xiàng)傳遞option給匯編程序;如果option中間有逗號(hào),就將option分成多個(gè)選項(xiàng),然
后傳遞給會(huì)匯編程序
  
-Wl.option
  此選項(xiàng)傳遞option給連接程序;如果option中間有逗號(hào),就將option分成多個(gè)選項(xiàng),然
后傳遞給會(huì)連接程序.
  
-llibrary
  制定編譯的時(shí)候使用的庫(kù)
  例子用法
  gcc -lcurses hello.c
  使用ncurses庫(kù)編譯程序
  
-Ldir
  制定編譯的時(shí)候,搜索庫(kù)的路徑。比如你自己的庫(kù),可以用它制定目錄,不然
  編譯器將只在標(biāo)準(zhǔn)庫(kù)的目錄找。這個(gè)dir就是目錄的名稱。
  
-O0
-O1
-O2
-O3
  編譯器的優(yōu)化選項(xiàng)的4個(gè)級(jí)別,-O0表示沒(méi)有優(yōu)化,-O1為缺省值,-O3優(yōu)化級(jí)別最高 
    
-g
  只是編譯器,在編譯的時(shí)候,產(chǎn)生調(diào)試信息。
  
-gstabs
  此選項(xiàng)以stabs格式聲稱調(diào)試信息,但是不包括gdb調(diào)試信息.
  
-gstabs+
  此選項(xiàng)以stabs格式聲稱調(diào)試信息,并且包含僅供gdb使用的額外調(diào)試信息.
  
-ggdb
  此選項(xiàng)將盡可能的生成gdb的可以使用的調(diào)試信息.
-static
  此選項(xiàng)將禁止使用動(dòng)態(tài)庫(kù),所以,編譯出來(lái)的東西,一般都很大,也不需要什么
動(dòng)態(tài)連接庫(kù),就可以運(yùn)行.
-share
  此選項(xiàng)將盡量使用動(dòng)態(tài)庫(kù),所以生成文件比較小,但是需要系統(tǒng)由動(dòng)態(tài)庫(kù).
-traditional
  試圖讓編譯器支持傳統(tǒng)的C語(yǔ)言特性
[參考資料]
-Linux/UNIX高級(jí)編程
  中科紅旗軟件技術(shù)有限公司編著.清華大學(xué)出版社出版
-Gcc man page
  
[ChangeLog]
-2002-08-10
  ver 0.1 發(fā)布最初的文檔
-2002-08-11
  ver 0.11 修改文檔格式
-2002-08-12
  ver 0.12 加入了對(duì)靜態(tài)庫(kù),動(dòng)態(tài)庫(kù)的參數(shù)
-2002-08-16
  ver 0.16 增加了gcc編譯的4個(gè)階段的命令
運(yùn)行 gcc/egcs
**********運(yùn)行 gcc/egcs***********************
  GCC 是 GNU 的 C 和 C++ 編譯器。實(shí)際上,GCC 能夠編譯三種語(yǔ)言:C、C++ 和 O
bject C(C 語(yǔ)言的一種面向?qū)ο髷U(kuò)展)。利用 gcc 命令可同時(shí)編譯并連接 C 和 C++
源程序。
  如果你有兩個(gè)或少數(shù)幾個(gè) C 源文件,也可以方便地利用 GCC 編譯、連接并生成可
執(zhí)行文件。例如,假設(shè)你有兩個(gè)源文件 main.c 和 factorial.c 兩個(gè)源文件,現(xiàn)在要編
譯生成一個(gè)計(jì)算階乘的程序。
代碼:
-----------------------
清單 factorial.c
-----------------------
int factorial (int n)
{
  if (n <= 1)
   return 1;
  else
   return factorial (n - 1) * n;
}
-----------------------
清單 main.c
-----------------------
#include <stdio.h>
#include <unistd.h>
int factorial (int n);
int main (int argc, char **argv)
{
  int n;
  if (argc < 2)
  {
    printf ("Usage: %s n\n", argv [0]);
    return -1;
  }
  else
  {
   n = atoi (argv[1]);
   printf ("Factorial of %d is %d.\n", n, factorial (n));
   }
  return 0;
}
-----------------------
利用如下的命令可編譯生成可執(zhí)行文件,并執(zhí)行程序:
$ gcc -o factorial main.c factorial.c
$ ./factorial 5
Factorial of 5 is 120.
  GCC 可同時(shí)用來(lái)編譯 C 程序和 C++ 程序。一般來(lái)說(shuō),C 編譯器通過(guò)源文件的后綴
名來(lái)判斷是 C 程序還是 C++ 程序。在 Linux 中,C 源文件的后綴名為 .c,而 C++ 源
文件的后綴名為 .C 或 .cpp。但是,gcc 命令只能編譯 C++ 源文件,而不能自動(dòng)和 C
++ 程序使用的庫(kù)連接。因此,通常使用 g++ 命令來(lái)完成 C++ 程序的編譯和連接,該程
序會(huì)自動(dòng)調(diào)用 gcc 實(shí)現(xiàn)編譯。假設(shè)我們有一個(gè)如下的 C++ 源文件(hello.C):
#include <iostream>
void main (void)
{
  cout << "Hello, world!" << endl;
}
則可以如下調(diào)用 g++ 命令編譯、連接并生成可執(zhí)行文件:
$ g++ -o hello hello.C
$ ./hello
Hello, world!
**********************gcc/egcs 的主要選項(xiàng)*********
gcc 命令的常用選項(xiàng)
選項(xiàng) 解釋
-ansi 只支持 ANSI 標(biāo)準(zhǔn)的 C 語(yǔ)法。這一選項(xiàng)將禁止 GNU C 的某些特色,
例如 asm 或 typeof 關(guān)鍵詞。
-c 只編譯并生成目標(biāo)文件。
-DMACRO 以字符串“1”定義 MACRO 宏。
-DMACRO=DEFN 以字符串“DEFN”定義 MACRO 宏。
-E 只運(yùn)行 C 預(yù)編譯器。
-g 生成調(diào)試信息。GNU 調(diào)試器可利用該信息。
-IDIRECTORY 指定額外的頭文件搜索路徑DIRECTORY。
-LDIRECTORY 指定額外的函數(shù)庫(kù)搜索路徑DIRECTORY。
-lLIBRARY 連接時(shí)搜索指定的函數(shù)庫(kù)LIBRARY。
-m486 針對(duì) 486 進(jìn)行代碼優(yōu)化。
-o FILE 生成指定的輸出文件。用在生成可執(zhí)行文件時(shí)。
-O0 不進(jìn)行優(yōu)化處理。
-O 或 -O1 優(yōu)化生成代碼。
-O2 進(jìn)一步優(yōu)化。
-O3 比 -O2 更進(jìn)一步優(yōu)化,包括 inline 函數(shù)。
-shared 生成共享目標(biāo)文件。通常用在建立共享庫(kù)時(shí)。
-static 禁止使用共享連接。
-UMACRO 取消對(duì) MACRO 宏的定義。
-w 不生成任何警告信息。
-Wall 生成所有警告信息。

posted @ 2006-03-20 10:30 HuYi 閱讀(535) | 評(píng)論 (1)編輯 收藏

cyrus_sasl API使用方法

/* ?This?is?a?proposed?C?API?for?support?of?SASL
?*
?*********************************IMPORTANT*******************************
?*?send?email?to?chris.newman@innosoft.com?and?cyrus-bugs@andrew.cmu.edu?*
?*?if?you?need?to?add?new?error?codes,?callback?types,?property?values,??*
?*?etc.???It?is?important?to?keep?the?multiple?implementations?of?this???*
?*?API?from?diverging.???????????????????????????????????????????????????*
?*********************************IMPORTANT*******************************
?*
?*?Basic?Type?Summary:
?*??sasl_conn_t???????Context?for?a?SASL?connection?negotiation
?*??sasl_ssf_t????????Security?layer?Strength?Factor
?*??sasl_callback_t???A?typed?client/server?callback?function?and?context
?*??sasl_interact_t???A?client?interaction?descriptor
?*??sasl_secret_t?????A?client?password
?*??sasl_rand_t???????Random?data?context?structure
?*??sasl_security_properties_t??An?application's?required?security?level
?*
?*?Callbacks:
?*??sasl_getopt_t?????client/server:?Get?an?option?value
?*??sasl_logmsg_t?????client/server:?Log?message?handler
?*??sasl_getsimple_t??client:?Get?user/language?list
?*??sasl_getsecret_t??client:?Get?authentication?secret
?*??sasl_chalprompt_t?client:?Display?challenge?and?prompt?for?response
?*
?*?Server?only?Callbacks:
?*??sasl_authorize_t?????????????user?authorization?policy?callback
?*??sasl_server_userdb_checkpass?check?password?and?auxprops?in?userdb
?*??sasl_server_userdb_setpass???set?password?in?userdb
?*??sasl_server_canon_user???????canonicalize?username?routine
?*
?*?Client/Server?Function?Summary:
?*??sasl_done?????????Release?all?SASL?global?state
?*??sasl_dispose??????Connection?done:?Dispose?of?sasl_conn_t
?*??sasl_getprop??????Get?property?(e.g.,?user?name,?security?layer?info)
?*??sasl_setprop??????Set?property?(e.g.,?external?ssf)
?*??sasl_errdetail????Generate?string?from?last?error?on?connection
?*??sasl_errstring????Translate?sasl?error?code?to?a?string
?*??sasl_encode???????Encode?data?to?send?using?security?layer
?*??sasl_decode???????Decode?data?received?using?security?layer
?*??
?*?Utility?functions:
?*??sasl_encode64?????Encode?data?to?send?using?MIME?base64?encoding
?*??sasl_decode64?????Decode?data?received?using?MIME?base64?encoding
?*??sasl_erasebuffer??Erase?a?buffer
?*
?*?Client?Function?Summary:
?*??sasl_client_init??Load?and?initialize?client?plug-ins?(call?once)
?*??sasl_client_new???Initialize?client?connection?context:?sasl_conn_t
?*??sasl_client_start?Select?mechanism?for?connection
?*??sasl_client_step??Perform?one?authentication?step
?*
?*?Server?Function?Summary
?*??sasl_server_init??Load?and?initialize?server?plug-ins?(call?once)
?*??sasl_server_new???Initialize?server?connection?context:?sasl_conn_t
?*??sasl_listmech?????Create?list?of?available?mechanisms
?*??sasl_server_start?Begin?an?authentication?exchange
?*??sasl_server_step??Perform?one?authentication?exchange?step
?*??sasl_checkpass????Check?a?plaintext?passphrase
?*??sasl_checkapop????Check?an?APOP?challenge/response?(uses?pseudo?"APOP"
?*????????????????????mechanism?similar?to?CRAM-MD5?mechanism;?optional)
?*??sasl_user_exists??Check?if?user?exists
?*??sasl_setpass??????Change?a?password?or?add?a?user?entry
?*??sasl_auxprop_request??Request?auxiliary?properties
?*??sasl_auxprop_getctx???Get?auxiliary?property?context?for?connection
?*??sasl_auxprop_store????Store?a?set?of?auxiliary?properties
?*
?*?Basic?client?model:
?*??1.?client?calls?sasl_client_init()?at?startup?to?load?plug-ins
?*??2.?when?connection?formed,?call?sasl_client_new()
?*??3.?once?list?of?supported?mechanisms?received?from?server,?client
?*?????calls?sasl_client_start().??goto?4a
?*??4.?client?calls?sasl_client_step()
?*?[4a.?If?SASL_INTERACT,?fill?in?prompts?and?goto?4
?*??????--?doesn't?happen?if?callbacks?provided]
?*??4b.?If?SASL?error,?goto?7?or?3
?*??4c.?If?SASL_OK,?continue?or?goto?6?if?last?server?response?was?success
?*??5.?send?message?to?server,?wait?for?response
?*??5a.?On?data?or?success?with?server?response,?goto?4
?*??5b.?On?failure?goto?7?or?3
?*??5c.?On?success?with?no?server?response?continue
?*??6.?continue?with?application?protocol?until?connection?closes
?*?????call?sasl_getprop/sasl_encode/sasl_decode()?if?using?security?layer
?*??7.?call?sasl_dispose(),?may?return?to?step?2
?*??8.?call?sasl_done()?when?program?terminates
?*
?*?Basic?Server?model:
?*??1.?call?sasl_server_init()?at?startup?to?load?plug-ins
?*??2.?On?connection,?call?sasl_server_new()
?*??3.?call?sasl_listmech()?and?send?list?to?client]
?*??4.?after?client?AUTH?command,?call?sasl_server_start(),?goto?5a
?*??5.?call?sasl_server_step()
?*??5a.?If?SASL_CONTINUE,?output?to?client,?wait?response,?repeat?5
?*??5b.?If?SASL?error,?then?goto?7
?*??5c.?If?SASL_OK,?move?on
?*??6.?continue?with?application?protocol?until?connection?closes
?*?????call?sasl_getprop?to?get?username
?*?????call?sasl_getprop/sasl_encode/sasl_decode()?if?using?security?layer
?*??7.?call?sasl_dispose(),?may?return?to?step?2
?*??8.?call?sasl_done()?when?program?terminates
?*
?*************************************************
從sasl.h中截取的。

posted @ 2006-03-19 11:21 HuYi 閱讀(693) | 評(píng)論 (0)編輯 收藏

僅列出標(biāo)題
共7頁(yè): 1 2 3 4 5 6 7 

導(dǎo)航

統(tǒng)計(jì)

常用鏈接

留言簿(12)

隨筆分類

相冊(cè)

收藏夾

友情鏈接

最新隨筆

搜索

積分與排名

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲尤物视频在线| 欧美黑人一区二区三区| 欧美国产精品日韩| 欧美jizzhd精品欧美巨大免费| 久久精品午夜| 久久精品视频一| 欧美xart系列在线观看| 亚洲国产精品精华液网站| 欧美激情一级片一区二区| 亚洲欧洲精品一区二区| 在线视频精品一区| 久久精品二区| 欧美日韩福利| 国产亚洲精品美女| 亚洲日韩欧美视频| 午夜精品久久久久久久久| 久久一区免费| 亚洲日本视频| 久久av一区二区| 欧美女人交a| 国产私拍一区| 中文一区二区| 久久综合99re88久久爱| 99国产一区| 久久婷婷麻豆| 国产精品入口福利| 亚洲精品视频啊美女在线直播| 亚洲一区尤物| 91久久精品日日躁夜夜躁国产| 亚洲欧美日韩国产成人| 欧美成人亚洲成人| 亚洲人成在线观看| 亚洲一区二区在线免费观看| 午夜精品福利一区二区蜜股av| 久久久免费精品| 亚洲毛片播放| 麻豆视频一区二区| 国产视频亚洲精品| 亚洲欧美日韩精品一区二区| 欧美高清视频在线| 久久成人一区二区| 国产精品xxxxx| 一区二区三区.www| 亚洲高清资源| 老司机精品福利视频| 国产日韩欧美精品综合| 一区二区动漫| 亚洲欧洲久久| 欧美肥婆在线| 亚洲精品国精品久久99热| 久久久久欧美精品| 欧美在线视频不卡| 国产欧美一区二区精品性色| 亚洲永久免费视频| 一区二区三区欧美在线| 欧美日韩八区| 9国产精品视频| 亚洲欧洲免费视频| 欧美国产综合视频| 日韩香蕉视频| 亚洲另类自拍| 欧美特黄a级高清免费大片a级| 一本一本久久a久久精品牛牛影视| 欧美成人高清| 欧美精品久久99| 9l国产精品久久久久麻豆| 亚洲美女黄色片| 欧美午夜精品久久久久久人妖 | 国产日产高清欧美一区二区三区| 亚洲私人影院在线观看| 一本到12不卡视频在线dvd| 欧美午夜欧美| 久久成人人人人精品欧| 久久国产精品久久久久久电车| 国产综合色产| 欧美国产综合| 国产精品国码视频| 久久精品夜色噜噜亚洲a∨ | 亚洲精品极品| 一区二区三区四区国产| 国产欧美日韩一区二区三区在线| 久久精品一区二区国产| 久热精品视频| 一区二区三区免费观看| 亚洲欧美国产制服动漫| 影音先锋欧美精品| 亚洲精品国产无天堂网2021| 国产精品久久久久9999高清| 国产亚洲一区二区精品| 国产精品日韩欧美一区二区| 欧美一区久久| 久久婷婷国产综合尤物精品| 日韩午夜视频在线观看| 亚洲欧美国产毛片在线| 亚洲国产一区二区精品专区| 亚洲美女啪啪| 伊人成综合网伊人222| 亚洲精品国产视频| 国产一区二区日韩精品欧美精品| 亚洲国产99精品国自产| 国产精品爽黄69| 亚洲国产成人不卡| 国产午夜精品美女视频明星a级| 欧美韩国日本一区| 国内激情久久| 亚洲色图综合久久| 亚洲精品视频在线观看网站| 性欧美18~19sex高清播放| 最近中文字幕日韩精品 | 欧美激情亚洲| 久久久蜜桃一区二区人| 欧美日韩亚洲在线| 欧美激情91| 激情久久影院| 亚洲一区欧美| 亚洲一区在线观看视频 | 欧美日韩一二三区| 亚洲成色999久久网站| 国产一区二区三区免费不卡| 一本色道久久综合一区| 亚洲欧洲一区二区三区| 久久国产黑丝| 久久精品首页| 国产情人节一区| 亚洲午夜免费福利视频| 一本色道88久久加勒比精品| 欧美a级片网| 亚洲国产成人一区| 亚洲欧洲在线免费| 美女在线一区二区| 嫩模写真一区二区三区三州| 国产一区二区三区网站| 小黄鸭视频精品导航| 久久久精品国产一区二区三区 | 亚洲小少妇裸体bbw| 欧美精品色网| 99这里只有久久精品视频| 一区二区三区你懂的| 欧美日韩国产精品自在自线| 亚洲国产成人高清精品| 亚洲三级网站| 欧美伦理一区二区| 一区二区三区www| 亚洲欧美日韩国产成人精品影院| 欧美性一区二区| 午夜精品久久久| 久久午夜精品| 最新日韩中文字幕| 欧美日本在线播放| 中文av字幕一区| 先锋亚洲精品| 依依成人综合视频| 免费在线成人| 免费成人黄色av| 亚洲精品乱码| 亚洲一级免费视频| 国产精品一区视频网站| 小黄鸭精品aⅴ导航网站入口| 久久亚洲不卡| 亚洲精品日韩综合观看成人91| 欧美日韩另类一区| 亚洲欧美激情在线视频| 免费人成网站在线观看欧美高清| 亚洲人成免费| 国产欧美一区二区三区沐欲| 久久精品国产91精品亚洲| 欧美国产一区在线| 午夜精品久久| 在线视频成人| 欧美视频在线观看视频极品| 午夜精品久久久久久久蜜桃app | 久久男人av资源网站| 亚洲国产精品va| 国产精品国产精品| 蘑菇福利视频一区播放| 亚洲一区二三| 亚洲国产美女| 久久精品中文字幕一区| 日韩亚洲不卡在线| 国产在线视频不卡二| 欧美日本中文| 免费久久99精品国产自在现线 | 欧美精品性视频| 欧美一区二视频| 99精品国产热久久91蜜凸| 女同一区二区| 欧美中文在线观看| 亚洲一级二级| 亚洲人成在线免费观看| 国产有码一区二区| 欧美三级黄美女| 嫩模写真一区二区三区三州| 亚洲欧美在线播放| av不卡在线| 亚洲日本成人| 欧美高清在线一区二区| 久久亚洲综合色| 午夜精品理论片| 亚洲手机视频| 日韩亚洲欧美精品|