锘??xml version="1.0" encoding="utf-8" standalone="yes"?>欧美亚洲第一页,欧美激情1区2区3区,国产精品v亚洲精品v日韩精品http://m.shnenglu.com/singohgod/姣忓ぉ鏅氫笂鍏ョ潯錛岄兘灝嗚繋鏉ュ喘鏂扮殑鏄庡ぉ錛岃繖灝辨槸姊︽兂錛?澶у疂澶╁ぉ瑙?/description>zh-cnSun, 16 Nov 2025 02:24:22 GMTSun, 16 Nov 2025 02:24:22 GMT60[杞澆]winnt.h(236) : error C2146: 璇硶閿欒 : 緙哄皯鈥?鈥?鍦ㄦ爣璇嗙鈥淧VOID64鈥濈殑鍓嶉潰)http://m.shnenglu.com/singohgod/archive/2011/12/07/161660.html澶у疂澶╁ぉ瑙?/dc:creator>澶у疂澶╁ぉ瑙?/author>Wed, 07 Dec 2011 05:03:00 GMThttp://m.shnenglu.com/singohgod/archive/2011/12/07/161660.htmlhttp://m.shnenglu.com/singohgod/comments/161660.htmlhttp://m.shnenglu.com/singohgod/archive/2011/12/07/161660.html#Feedback1http://m.shnenglu.com/singohgod/comments/commentRss/161660.htmlhttp://m.shnenglu.com/singohgod/services/trackbacks/161660.html緇撹鏄敱浜巌nclude璺緞鐨勯『搴忓紩璧風殑.鎶奃X9鐨勮礬寰勭Щ鍒版渶鍚?鏋滅劧灝卞ソ浜?@import url(http://m.shnenglu.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);

]]>
[杞澆]Linux闈欐佸簱鍜屽姩鎬佸簱http://m.shnenglu.com/singohgod/archive/2011/10/17/158546.html澶у疂澶╁ぉ瑙?/dc:creator>澶у疂澶╁ぉ瑙?/author>Mon, 17 Oct 2011 07:51:00 GMThttp://m.shnenglu.com/singohgod/archive/2011/10/17/158546.htmlhttp://m.shnenglu.com/singohgod/comments/158546.htmlhttp://m.shnenglu.com/singohgod/archive/2011/10/17/158546.html#Feedback0http://m.shnenglu.com/singohgod/comments/commentRss/158546.htmlhttp://m.shnenglu.com/singohgod/services/trackbacks/158546.html搴撲粠鏈川涓婃潵璇存槸涓縐嶅彲鎵ц浠g爜鐨勪簩榪涘埗鏍煎紡錛屽彲浠ヨ杞藉叆鍐呭瓨涓墽琛屻傚簱鍒嗛潤鎬佸簱鍜屽姩鎬佸簱涓ょ銆?nbsp;

闈欐佸簱鍜屽姩鎬佸簱鐨勫尯鍒?/h1>

1. 闈欐佸嚱鏁板簱

    榪欑被搴撶殑鍚嶅瓧涓鑸槸libxxx.a錛涘埄鐢ㄩ潤鎬佸嚱鏁板簱緙栬瘧鎴愮殑鏂囦歡姣旇緝澶э紝鍥犱負鏁翠釜 鍑芥暟搴撶殑鎵鏈夋暟鎹兘浼氳鏁村悎榪涚洰鏍囦唬鐮佷腑錛屼粬鐨勪紭鐐瑰氨鏄捐屾槗瑙佷簡錛屽嵆緙栬瘧鍚庣殑鎵ц紼嬪簭涓嶉渶瑕佸閮ㄧ殑鍑芥暟搴撴敮鎸侊紝鍥犱負鎵鏈変嬌鐢ㄧ殑鍑芥暟閮藉凡緇忚緙栬瘧榪涘幓浜嗐傚綋鐒惰繖涔熶細鎴愪負浠栫殑緙虹偣錛屽洜涓哄鏋滈潤鎬佸嚱鏁板簱鏀瑰彉浜嗭紝閭d箞浣犵殑紼嬪簭蹇呴』閲嶆柊緙栬瘧銆?/p>

2. 鍔ㄦ佸嚱鏁板簱

    榪欑被搴撶殑鍚嶅瓧涓鑸槸libxxx.so;鐩稿浜庨潤鎬佸嚱鏁板簱錛屽姩鎬佸嚱鏁板簱鍦ㄧ紪璇戠殑鏃跺?騫舵病鏈夎緙栬瘧榪涚洰鏍囦唬鐮佷腑錛屼綘鐨勭▼搴忔墽琛屽埌鐩稿叧鍑芥暟鏃舵墠璋冪敤璇ュ嚱鏁板簱閲岀殑鐩稿簲鍑芥暟錛屽洜姝ゅ姩鎬佸嚱鏁板簱鎵浜х敓鐨勫彲鎵ц鏂囦歡姣旇緝灝忋傜敱浜庡嚱鏁板簱娌℃湁琚暣鍚堣繘浣犵殑紼嬪簭錛岃屾槸紼嬪簭榪愯鏃跺姩鎬佺殑鐢寵騫惰皟鐢紝鎵浠ョ▼搴忕殑榪愯鐜涓繀欏繪彁渚涚浉搴旂殑搴撱傚姩鎬佸嚱鏁板簱鐨勬敼鍙樺茍涓嶅獎鍝嶄綘鐨勭▼搴忥紝鎵浠ュ姩鎬佸嚱鏁板簱鐨勫崌綰ф瘮杈冩柟渚褲?nbsp;
linux緋葷粺鏈夊嚑涓噸瑕佺殑鐩綍瀛樻斁鐩稿簲鐨勫嚱鏁板簱錛屽/lib /usr/lib銆?/p>

闈欐佸簱鐨勪嬌鐢?/h1>

闈欐佸簱鐨勬搷浣滃伐鍏鳳細gcc鍜宎r 鍛戒護銆?nbsp;

緙栧啓鍙婁嬌鐢ㄩ潤鎬佸簱 

(1)璁捐搴撴簮鐮?pr1.c 鍜?pr2.c 

[root@billstone make_lib]# cat pr1.c 

void print1() 

                printf("This is the first lib src!\n"); 

[root@billstone make_lib]# cat pr2.c 

void print2() 

                printf("This is the second src lib!\n"); 

       (2)  緙栬瘧.c 鏂囦歡 

[bill@billstone make_lib]$ cc -O -c pr1.c pr2.c 

[bill@billstone make_lib]$ ls -l pr*.o 

-rw-rw-r--        1 bill          bill                    804    4 鏈?nbsp; 15 11:11 pr1.o 

-rw-rw-r--        1 bill          bill                    804    4 鏈?nbsp; 15 11:11 pr2.o 

(3)  閾炬帴闈欐佸簱 

    涓轟簡鍦ㄧ紪璇戠▼搴忎腑姝g‘鎵懼埌搴撴枃浠?闈欐佸簱蹇呴』鎸夌収 lib[name].a 鐨勮鍒欏懡鍚?濡備笅渚嬩腑[name]=pr. 

[bill@billstone make_lib]$ ar -rsv libpr.a pr1.o pr2.o 

a - pr1.o 

a - pr2.o 

[bill@billstone make_lib]$ ls -l *.a 

-rw-rw-r--        1 bill          bill                  1822    4 鏈?nbsp; 15 11:12 libpr.a 

[bill@billstone make_lib]$ ar -t libpr.a 

pr1.o 

pr2.o 

(4)  璋冪敤搴撳嚱鏁頒唬鐮?main.c 

[bill@billstone make_lib]$ cat main.c 

int main() 

                print1(); 

                print2(); 

                return 0; 

(5)  緙栬瘧閾炬帴閫夐」 

    -L 鍙?l 鍙傛暟鏀懼湪鍚庨潰.鍏朵腑,-L 鍔犺澆搴撴枃浠惰礬寰?-l 鎸囨槑搴撴枃浠跺悕瀛? 

[bill@billstone make_lib]$ gcc -o main main.c -L./ -lpr 

[bill@billstone make_lib]$ ls -l main* 

-rwxrwxr-x        1 bill          bill                11805    4 鏈?nbsp; 15 11:17 main 

-rw-rw-r--        1 bill          bill                      50    4 鏈?nbsp; 15 11:15 main.c 

(6)鎵ц鐩爣紼嬪簭 

[bill@billstone make_lib]$ ./main 

This is the first lib src! 

This is the second src lib! 

[bill@billstone make_lib]$ 

鍔ㄦ佸簱鐨勪嬌鐢?/h1>

緙栧啓鍔ㄦ佸簱 

(1)璁捐搴撲唬鐮?/strong> 

[bill@billstone make_lib]$ cat pr1.c 

int p = 2; 

void print(){ 

                printf("This is the first dll src!\n"); 

[bill@billstone make_lib]$   

(2)鐢熸垚鍔ㄦ佸簱 

[bill@billstone make_lib]$ gcc -O -fpic -shared -o dl.so pr1.c 

[bill@billstone make_lib]$ ls -l *.so 

-rwxrwxr-x        1 bill          bill                  6592    4 鏈?nbsp; 15 15:19 dl.so 

[bill@billstone make_lib]$ 

鍔ㄦ佸簱鐨勯殣寮忚皟鐢?/strong> 

  鍦ㄧ紪璇戣皟鐢ㄥ簱鍑芥暟浠g爜鏃舵寚鏄庡姩鎬佸簱鐨勪綅緗強鍚嶅瓧,  鐪嬩笅闈㈠疄渚?nbsp;

[bill@billstone make_lib]$ cat main.c 

int main() 

                print(); 

                return 0; 

[bill@billstone make_lib]$ gcc -o tdl main.c ./dl.so 

[bill@billstone make_lib]$ ./tdl 

This is the first dll src! 

[bill@billstone make_lib]$ 

褰撳姩鎬佸簱鐨勪綅緗椿鍚嶅瓧鍙戠敓鏀瑰彉鏃?  紼嬪簭灝嗘棤娉曟甯歌繍琛?  鑰屽姩鎬佸簱鍙栦唬闈欐佸簱鐨勫ソ澶勪箣涓鍒欐槸閫氳繃鏇存柊鍔ㄦ佸簱鑰岄殢鏃跺崌綰у簱鐨勫唴瀹? 

鍔ㄦ佸簱鐨勬樉寮忚皟鐢?/strong> 

  鏄懼紡璋冪敤鍔ㄦ佸簱闇瑕佸洓涓嚱鏁扮殑鏀寔,  鍑芥暟 dlopen 鎵撳紑鍔ㄦ佸簱,  鍑芥暟 dlsym 鑾峰彇鍔ㄦ佸簱涓璞″熀鍧,  鍑?/strong>鏁?dlerror 鑾峰彇鏄懼紡鍔ㄦ佸簱鎿嶄綔涓殑閿欒淇℃伅,  鍑芥暟 doclose 鍏抽棴鍔ㄦ佸簱.

[bill@billstone make_lib]$ cat main.c 

#include <dlfcn.h> 

int main() 

                void *pHandle; 

                void (*pFunc)();                                                    //  鎸囧悜鍑芥暟鐨勬寚閽?nbsp;

                int *p; 

                pHandle = dlopen("./d1.so", RTLD_NOW);                  //  鎵撳紑鍔ㄦ佸簱 

                if(!pHandle){ 

                                printf("Can't find d1.so \n"); 

                                exit(1); 

                } 

                pFunc = (void (*)())dlsym(pHandle, "print");                //  鑾峰彇搴撳嚱鏁?print 鐨勫湴鍧 

                if(pFunc) 

                                pFunc(); 

                else 

                                printf("Can't find function print\n"); 

                p = (int *)dlsym(pHandle, "p");                                      //  鑾峰彇搴撳彉閲?p 鐨勫湴鍧 

                if(p) 

                                printf("p = %d\n", *p); 

                else 

                                printf("Can't find int p\n"); 

                dlclose(pHandle);                                                                //  鍏抽棴鍔ㄦ佸簱 

                return 0; 

[bill@billstone make_lib]$ gcc -o tds main.c –ld1 –L.

姝ゆ椂榪樹笉鑳界珛鍗?/tds錛屽洜涓哄湪鍔ㄦ佸嚱鏁板簱浣跨敤鏃訛紝浼氭煡鎵?usr/lib銆?lib鐩綍涓嬬殑鍔ㄦ佸嚱鏁板簱錛岃屾鏃舵垜浠敓鎴愮殑搴撲笉鍦ㄩ噷杈廣?榪欎釜鏃跺欐湁濂藉嚑縐嶆柟娉曞彲浠ヨ浠栨垚鍔熻繍琛岋細 鏈鐩存帴鏈綆鍗曠殑鏂規硶灝辨槸鎶妉ibstr_out.so鎷夊埌/usr/lib鎴?lib涓幓銆?榪樻湁涓縐嶆柟娉?export LD_LIBRARY_PATH=$(pwd) 鍙﹀榪樺彲浠ュ湪/etc/ld.so.conf鏂囦歡閲屽姞鍏ユ垜浠敓鎴愮殑搴撶殑鐩綍錛岀劧鍚?sbin/ldconfig銆?/etc/ld.so.conf鏄潪甯擱噸瑕佺殑涓涓洰褰曪紝閲岄潰瀛樻斁鐨勬槸閾炬帴鍣ㄥ拰鍔犺澆鍣ㄦ悳绱㈠叡浜簱鏃惰媯鏌ョ殑鐩綍錛岄粯璁ゆ槸浠?usr/lib /lib涓鍙栫殑錛屾墍浠ユ兂瑕侀『鍒╄繍琛岋紝鎴戜滑涔熷彲浠ユ妸鎴戜滑搴撶殑鐩綍鍔犲叆鍒拌繖涓枃浠朵腑騫舵墽琛?sbin/ldconfig 銆傚彟澶栬繕鏈変釜鏂囦歡闇瑕佷簡瑙?etc/ld.so.cache,閲岄潰淇濆瓨浜嗗父鐢ㄧ殑鍔ㄦ佸嚱鏁板簱錛屼笖浼氬厛鎶婁粬浠姞杞藉埌鍐呭瓨涓紝鍥犱負鍐呭瓨鐨勮闂熷害榪滆繙澶т簬紜洏鐨勮闂熷害錛岃繖鏍峰彲浠ユ彁楂樿蔣浠跺姞杞藉姩鎬佸嚱鏁板簱鐨勯熷害浜嗐?/p>

搴撲緷璧栫殑鏌ョ湅

浣跨敤ldd鍛戒護鏉ユ煡鐪嬫墽琛屾枃浠朵緷璧栦簬鍝簺搴撱?/p>

璇ュ懡浠ょ敤浜庡垽鏂煇涓彲鎵ц鐨?binary 妗f鍚湁浠涔堝姩鎬佸嚱寮忓簱銆?br /> [root@test root]# ldd [-vdr] [filename]
鍙傛暟璇存槑錛?br /> --version銆銆鎵撳嵃ldd鐨勭増鏈彿
-v --verbose銆銆鎵撳嵃鎵鏈変俊鎭紝渚嬪鍖呮嫭絎﹀彿鐨勭増鏈俊鎭?br /> -d --data-relocs銆銆鎵ц絎﹀彿閲嶉儴緗詫紝騫舵姤鍛婄己灝戠殑鐩爣瀵硅薄錛堝彧瀵笶LF鏍煎紡閫傜敤錛?br /> -r --function-relocs銆銆瀵圭洰鏍囧璞″拰鍑芥暟鎵ц閲嶆柊閮ㄧ講錛屽茍鎶ュ憡緙哄皯鐨勭洰鏍囧璞″拰鍑芥暟錛堝彧瀵笶LF鏍煎紡閫傜敤錛?br /> --help 鐢ㄦ硶淇℃伅銆?/p>

濡傛灉鍛戒護琛屼腑緇欏畾鐨勫簱鍚嶅瓧鍖呭惈'/'錛岃繖涓▼搴忕殑libc5鐗堟湰灝嗕嬌鐢ㄥ畠浣滀負搴撳悕瀛楋紱鍚﹀垯瀹冨皢鍦ㄦ爣鍑嗕綅緗悳绱㈠簱銆傝繍琛屼竴涓綋鍓嶇洰褰曚笅鐨勫叡浜簱錛屽姞鍓嶇紑"./"銆?/p> @import url(http://m.shnenglu.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);

]]>[鎽樺綍]Windows7涓叧鏈恒佺潯鐪犲拰浼戠湢鐨勫尯鍒?/title><link>http://m.shnenglu.com/singohgod/archive/2011/08/24/154217.html</link><dc:creator>澶у疂澶╁ぉ瑙?/dc:creator><author>澶у疂澶╁ぉ瑙?/author><pubDate>Wed, 24 Aug 2011 08:13:00 GMT</pubDate><guid>http://m.shnenglu.com/singohgod/archive/2011/08/24/154217.html</guid><wfw:comment>http://m.shnenglu.com/singohgod/comments/154217.html</wfw:comment><comments>http://m.shnenglu.com/singohgod/archive/2011/08/24/154217.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/singohgod/comments/commentRss/154217.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/singohgod/services/trackbacks/154217.html</trackback:ping><description><![CDATA[@import url(http://m.shnenglu.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css); @import url(http://m.shnenglu.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css); <span style="line-height: normal; "> <div><font size="3"> <p>鍋囪緇忚繃涓孌墊椂闂寸殑浣跨敤錛岀數鑴戦噷榪愯浜嗗緢澶氱▼搴忥紝榪欎簺紼嬪簭鏈変簺淇濈暀鍦ㄥ唴瀛樹腑錛屾湁浜?#8220;鏆傚瓨”鍦ㄧ‖鐩樹腑銆傚鏋滆繖鏃跺欐垜浠笉鎵撶畻浣跨敤鐢佃剳錛岄偅涔?#8220;鍏蟲満”銆?#8220;浼戠湢”錛屽拰“鐫$湢”鐨勪笉鍚岀偣灝卞彲浠ヤ綋鐜板嚭鏉ヤ簡銆?/p> <ul> <li>濡傛灉“鍏蟲満”錛岃繖鏃跺橶indows浼氫繚瀛樻墍鏈夎繍琛屼腑鐨勭▼搴忕殑鐘舵侊紙渚嬪鍦╓ord閲屽啓浜嗕竴鍗婄殑鏂囨。錛夛紝鎶婃墍鏈夌▼搴忛兘鍏抽棴錛堝彲浠ユ兂鍍忔垚鐩存帴鎶婁功鍚堜笂錛夛紝騫朵繚瀛樺埌紜洏涓紝鐒跺悗褰誨簳鍒囨柇鐢佃剳鐨勭數婧愩?/li> <li>濡傛灉“浼戠湢”錛岃繖鏃跺橶indows涔熶細鎶婅繍琛屼腑鐨勬墍鏈夌▼搴忛噸鏂頒繚瀛樺埌紜洏銆備絾鍜屽叧鏈虹殑涓嶅悓鍦ㄤ簬錛屽叧鏈烘椂鍊欙紝Windows浼氭妸涔?#8220;鍚堜笂”錛岀劧鍚庢斁鍥炰功鏌滐紱浣嗕紤鐪犳椂鍊欙紝Windows涓嶆妸涔﹀悎涓婏紝鐩存帴鏀懼洖涔︽煖錛屽茍鎶婁功妗屼笂鐨勬墍鏈変笢瑗塊兘娓呯┖錛岀劧鍚庡交搴曞垏鏂數鑴戠殑鐢墊簮銆?/li> <li>濡傛灉鐫$湢錛岃繖鏃跺橶indows涓鏍蜂細鎶婁功鏀懼洖涔︽煖錛屼絾鏄功渚濈劧淇濇寔鎵撳紑鐘舵侊紝鍒拌繖涓姝ュ拰浼戠湢鏃跺畬鍏ㄧ浉鍚岀殑銆備絾鏄湪鐫$湢鏃訛紝涔︽涓婄殑鍐呭騫朵笉浼氳娓呯┖錛學indows浼氬垏鏂櫎浜嗗唴瀛樹箣澶栧叾浠栨墍鏈夎澶囩殑渚涚數錛屼絾瀵瑰唴瀛樼殑渚涚數渚濈劧鎸佺畫錛屽洜姝ゅ唴瀛樹腑鐨勬暟鎹笉浼氫涪澶便?/li> </ul> <p>榪?涔熷氨鏄錛屽鏋滆璁╃數鑴戝叧鏈猴紝Windows棣栧厛瑕佸叧闂墍鏈夎繍琛屼腑鐨勭▼搴忥紝鐒跺悗鍏抽棴緋葷粺鍚庡彴鐨勬湇鍔★紝鎺ョ潃鍚戜富鏉垮拰鐢墊簮鍙戝嚭鐗規畩鐨勪俊鍙鳳紝璁╃數婧愬垏鏂鎵鏈夎 澶囩殑渚涚數錛岀數鑴戝交搴曞叧闂備笅嬈″紑鏈哄悗錛岀數鑴戝畬鎴愯嚜媯宸ヤ綔錛岀劧鍚庡皢Windows緋葷粺杞藉叆鍐呭瓨錛屾帴鐫緇х畫鍔犺澆鍏朵粬鍚庡彴鏈嶅姟錛屽茍鏄劇ず鐧誨綍鐣岄潰銆傜櫥褰曞悗錛屾墠鍙互 榪愯鑷繁鐨勭▼搴忥紝寮濮嬩嬌鐢ㄧ數鑴戙傛暣涓繃紼嬪洜涓鴻褰誨簳鍏抽棴騫墮噸澶村紑濮嬪惎鍔ㄧ郴緇熷拰紼嬪簭錛屽洜姝ゆ墍闇鐨勬椂闂存渶甯搞?br /> <br /> 瀵逛簬寰呮満妯″紡錛屽鏋滆灝嗙數鑴戞斁鍏?寰呮満妯″紡錛學indows浼氳嚜鍔ㄥ悜鐢墊簮鍙戝嚭鍙︿竴縐嶇壒孌婁俊鍙鳳紝闅忓悗鐢墊簮浼氬垏鏂櫎浜嗗唴瀛樺鍏朵粬璁懼鐨勪緵鐢碉紝鍐呭瓨涓緷鐒朵繚瀛樹簡緋葷粺榪愯涓殑鎵鏈夋暟鎹紝榪欎釜榪囩▼涓 涓ょ閽熷氨鍙互瀹屾垚銆傚綋浠庡緟鏈虹姸鎬佽繘鍏ユ甯哥姸鎬佹椂錛屽彧瑕侀氱數錛岀劧鍚嶹indows灝變細緇х畫浠庡唴瀛樹腑淇濆瓨鐨勪笂涓嬈$殑“鐘舵佹暟鎹?#8221;涓嬭繍琛岋紝榪欎釜榪囩▼涔熷彧闇瑕佸嚑縐?閽熴?br /> <br /> 鍙錛屽浜庡緟鏈虹姸鎬侊紝瀹屽叏鍙互涓嶇敤鍏抽棴鑷繁鐨勭▼搴忥紝濡傛灉闇瑕侊紝闅忔椂鍙互寰呮満銆傝岃鎭㈠鏃朵篃鍙渶瑕佹寜涓嬬數婧愭寜閽紝鍑犵閽熷嵆鍙仮澶嶃備絾榪?縐嶆ā寮忚櫧鐒舵柟渚匡紝浣嗘湁涓涓嚧鍛界殑緙洪櫡錛氫笉鑳藉仠姝㈠鍐呭瓨鐨勪緵鐢點傚洜涓哄唴瀛樻槸涓縐嶆槗澶辨у瓨鍌ㄨ澶囷紝蹇呴』鍦ㄤ繚璇佷緵鐢電殑鎯呭喌涓嬫墠鑳界淮鎸佸叾涓殑鏁版嵁銆傚洜姝や竴鏃︾數鑴戝湪 寰呮満鐘舵佷笅鏂數錛屽摢鎬曚笉鍒頒竴縐掗挓錛屽唴瀛樹腑鐨勬暟鎹皢涓㈠け錛屼笅嬈″紑鏈虹殑鏃跺欙紝Windows浼氬儚浠庡叧鏈虹姸鎬佷笅鍚姩閭f牱閲嶆柊寮濮嬨?br /> <br /> 浼戠湢妯″紡鍜屽緟 鏈烘ā寮忕被浼鹼紝鍙笉榪囧湪浼戠湢鐘舵佷笅錛學indows浼氬皢鍐呭瓨涓殑鏁版嵁淇濆瓨鍒扮‖鐩樹笂緋葷粺鐩樻牴鐩綍涓嬬殑涓涓枃浠朵腑錛堝彲浠ュ皢榪欎釜鏂囦歡鐞嗚В涓哄唴瀛樼姸鎬佺殑“闀滃儚”錛夈?鑰屼笅嬈″紑鏈哄悗鍒欎粠鍐呭瓨涓婄殑浼戠湢鏂囦歡鍐呰鍙栨暟鎹紝騫惰澆鍏ョ墿鐞嗗唴瀛樸備紤鐪犳ā寮忓彲浠ュ疄鐜板拰寰呮満妯″紡綾諱技鐨勫姛鑳斤紝鍙笉榪囨仮澶嶉熷害紼嶆參錛岃屼笖闇瑕佸湪紜洏涓婂崰鎹竴鍧楀拰 鐗╃悊鍐呭瓨涓鏍峰ぇ鐨勭┖闂存潵淇濆瓨浼戠湢鏂囦歡銆傜墿鐞嗗唴瀛樿秺澶氾紝鍗犵敤鐨勭┖闂村氨瓚婂錛岃岃繘鍏ョ姸鎬佸拰浠庣姸鎬佹仮澶嶆墍闇鐨勬椂闂翠篃灝辮秺闀匡紙姣曠珶闇瑕佹妸鏂囦歡浠庣‖鐩樿鍏ュ唴瀛橈紝鑰岀‖ 鐩樼殑閫熷害涓鐩撮兘鏄渶鎱㈢殑錛夈備絾榪欑妯″紡鐨勪紭鐐逛篃鏈夊緢澶氾紝涓嶆曟柇鐢碉紒姣曠珶鏂數鍚庣‖鐩樹笂鐨勬暟鎹茍涓嶄細涓㈠け銆?br /> <br /> Windows Vista涓紑濮嬫柊澧炰簡鐨勪竴縐嶇潯鐪犳ā寮忓垯緇撳悎浜嗗緟鏈哄拰浼戠湢妯″紡鐨勬墍鏈変紭鐐廣傚湪榪涘叆鐫$湢妯″紡鍚庯紝Windows浼氶鍏堝皢鍐呭瓨涓殑鏁版嵁淇濆瓨鍒扮‖鐩樹笂錛堣繖涓鐐圭被 浼間紤鐪狅級錛屽悓鏃跺垏鏂櫎浜嗗唴瀛樺鍏朵粬璁懼鐨勪緵鐢碉紙榪欎竴鐐圭被浼煎緟鏈猴級銆傚湪鎭㈠鏃訛紝濡傛灉娌℃湁鏂繃鐢碉紝閭d箞緋葷粺浼氫粠鍐呭瓨涓洿鎺ユ仮澶嶏紝鍙渶瑕佸嚑縐掗挓錛涜屽氨綆楁柇鐢碉紝鍥?涓虹‖鐩樹腑榪樹繚瀛樻湁鍐呭瓨鐨勭姸鎬侀暅鍍忥紝鍥犳榪樺彲浠ヤ粠紜洏涓婃仮澶嶏紝铏界劧閫熷害瑕佺◢寰參涓浜涳紝浣嗚嚦灝戜笉鐢ㄦ媴蹇冩暟鎹涪澶便?/p> <div> <div>鏀惰搗璇ヨ〃鏍煎睍寮璇ヨ〃鏍?/div> <table cellspacing="1"> <tbody> <tr> <th> </th><th><span style="background-color: yellow; ">榪涘叆閫熷害</span></th><th><span style="background-color: yellow; ">鎭㈠閫熷害</span></th><th><span style="background-color: yellow; ">鏄惁鑰楃數</span></th><th><span style="background-color: yellow; ">鏂數鍚庣粨鏋?/span></th> </tr> <tr> <td><span style="background-color: yellow; ">鐫$湢</span></td> <td><span style="background-color: yellow; ">鍑犵閽?/span></td> <td><span style="background-color: yellow; ">涓嶆柇鐢電殑鎯呭喌涓嬪嚑縐掗挓</span></td> <td><span style="background-color: yellow; ">闇瑕佸鍐呭瓨榪涜灝戦噺渚涚數</span></td> <td><span style="background-color: yellow; ">鏂數鍚庯紝鏈繚瀛樻暟鎹笉鍙楁崯錛屼絾鎭㈠閫熷害闇瑕佺暐寰歡闀夸簺</span></td> </tr> <tr> <td><span style="background-color: yellow; ">浼戠湢</span></td> <td><span style="background-color: yellow; ">涓ゅ垎閽熷乏鍙?/span></td> <td><span style="background-color: yellow; ">涓ゅ垎閽熷乏鍙?/span></td> <td><span style="background-color: yellow; ">瀹屽叏涓嶈楃數</span></td> <td><span style="background-color: yellow; ">鏈繚瀛樻暟鎹笉浼氫涪澶?/span></td> </tr> <tr> <td><span style="background-color: yellow; ">寰呮満</span></td> <td><span style="background-color: yellow; ">鍑犵閽?/span></td> <td><span style="background-color: yellow; ">鍑犵閽?/span></td> <td><span style="background-color: yellow; ">闇瑕佸鍐呭瓨榪涜灝戦噺渚涚數</span></td> <td><span style="background-color: yellow; ">鏂數鍚庢墍鏈夋湭淇濆瓨鏁版嵁閮戒細涓㈠け</span></td> </tr> </tbody> </table> </div> <p><br /> 緇間笂鎵榪幫紝榪欏嚑縐嶆ā寮忓悇鏈夊埄寮婏紝浣嗗彧瑕乄indows鍜屾墍鐢ㄧ‖浠舵敮鎸侊紝鍒?span style="background-color: yellow; ">寮虹儓寤鴻浣跨敤鐫$湢鍔熻兘浠f浛浠ュ線涔犳儻鐨勫叧鏈烘搷浣?/span>銆傛瘯绔熺潯鐪犲姛鑳界殑浼樺娍鏄捐屾槗瑙侊紝涓嶄粎鍙互閬垮厤婕暱鐨勫惎鍔ㄨ繃紼嬶紝鑰屼笖瀹屽叏鍙互鎶婄數鑴戝綋浣滅數瑙嗕竴鏍風殑涓鑸數鍣紝闅忓紑闅忓叧錛屽畬鍏ㄤ笉鐢ㄦ媴蹇冧涪澶辨暟鎹?/p> </font></div> </span> @import url(http://m.shnenglu.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);<img src ="http://m.shnenglu.com/singohgod/aggbug/154217.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/singohgod/" target="_blank">澶у疂澶╁ぉ瑙?/a> 2011-08-24 16:13 <a href="http://m.shnenglu.com/singohgod/archive/2011/08/24/154217.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>[杞澆]Windows瀹屾垚绔彛涓嶭inux epoll鎶鏈畝浠?/title><link>http://m.shnenglu.com/singohgod/archive/2011/08/03/152376.html</link><dc:creator>澶у疂澶╁ぉ瑙?/dc:creator><author>澶у疂澶╁ぉ瑙?/author><pubDate>Wed, 03 Aug 2011 09:43:00 GMT</pubDate><guid>http://m.shnenglu.com/singohgod/archive/2011/08/03/152376.html</guid><wfw:comment>http://m.shnenglu.com/singohgod/comments/152376.html</wfw:comment><comments>http://m.shnenglu.com/singohgod/archive/2011/08/03/152376.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://m.shnenglu.com/singohgod/comments/commentRss/152376.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/singohgod/services/trackbacks/152376.html</trackback:ping><description><![CDATA[<p><strong>WINDOWS<strong>瀹屾垚绔彛</strong>緙栫▼<br /> </strong>1銆佸熀鏈蹇?br /> 2銆乄INDOWS<strong>瀹屾垚绔彛</strong>鐨勭壒鐐?br /> 3銆?strong>瀹屾垚绔彛</strong>錛圕ompletion Ports 錛夌浉鍏蟲暟鎹粨鏋勫拰鍒涘緩<br /> 4銆?strong>瀹屾垚绔彛</strong>綰跨▼鐨勫伐浣滃師鐞?br /> 5銆乄indows<strong>瀹屾垚绔彛</strong>鐨勫疄渚嬩唬鐮?br /> <strong>Linux鐨?strong>EPoll</strong>妯″瀷<br /> </strong>1銆佷負浠涔坰elect钀藉悗<br /> 2銆佸唴鏍鎬腑鎻愰珮I/O鎬ц兘鐨勬柊鏂規硶<strong>epoll</strong><br /> 3銆?strong>epoll</strong>鐨勪紭鐐?br /> 4銆?strong>epoll</strong>鐨勫伐浣滄ā寮?nbsp;<br /> 5銆?strong>epoll</strong>鐨勪嬌鐢ㄦ柟娉?br /> 6銆丩inux涓?strong>EPOll</strong>緙栫▼瀹炰緥<br /> <strong>鎬葷粨</strong></p> <p><strong>WINDOWS<strong>瀹屾垚绔彛</strong>緙栫▼<br /> </strong>        鎽樿錛氬紑鍙戠綉緇滅▼搴忎粠鏉ラ兘涓嶆槸涓浠跺鏄撶殑浜嬫儏錛屽敖綆″彧闇瑕侀伒瀹堝緢灝戠殑涓浜涜鍒?鍒涘緩socket,鍙戣搗榪炴帴錛屾帴鍙楄繛鎺ワ紝鍙戦佸拰鎺ュ彈鏁版嵁銆傜湡姝g殑鍥伴毦鍦ㄤ簬錛氳浣犵殑紼嬪簭鍙互閫傚簲浠庡崟鍗曚竴涓繛鎺ュ埌鍑犲崈涓繛鎺ヤ箖鑷充簬涓婁竾涓繛鎺ャ傚埄鐢╓indows騫沖彴<strong>瀹屾垚绔彛</strong>榪涜閲嶅彔I/O鐨勬妧鏈拰Linux鍦?.6鐗堟湰鐨勫唴鏍鎬腑寮曞叆鐨?strong>EPOll</strong>鎶鏈紝鍙互寰堟柟渚垮湪鍦ㄥ湪Windows鍜孡inux騫沖彴涓婂紑鍙戝嚭鏀寔澶ч噺榪炴帴鐨勭綉緇滄湇鍔$▼搴忋傛湰鏂囦粙緇嶅湪Windows鍜孡inux騫沖彴涓婁嬌鐢ㄧ殑<strong>瀹屾垚绔彛</strong>鍜?strong>EPoll</strong>妯″瀷寮鍙戠殑鍩烘湰鍘熺悊錛屽悓鏃剁粰鍑哄疄闄呯殑渚嬪瓙銆傛湰鏂囦富瑕佸叧娉–/S緇撴瀯鐨勬湇鍔″櫒绔▼搴忥紝鍥犱負涓鑸潵璇達紝寮鍙戜竴涓ぇ瀹歸噺錛屽叿鍙墿灞曟х殑winsock紼嬪簭涓鑸氨鏄寚鏈嶅姟紼嬪簭銆?br /> <strong><br /> 1銆佸熀鏈蹇?br /> </strong>    璁懼---windows鎿嶄綔緋葷粺涓婂厑璁擱氫俊鐨勪換浣曚笢瑗匡紝姣斿鏂囦歡銆佺洰褰曘佷覆琛屽彛銆佸茍琛屽彛銆侀偖浠舵Ы銆佸懡鍚嶇閬撱佹棤鍚嶇閬撱佸鎺ュ瓧銆佹帶鍒跺彴銆侀昏緫紓佺洏銆佺墿鐞嗙鐩樼瓑銆傜粷澶у鏁頒笌璁懼鎵撲氦閬撶殑鍑芥暟閮芥槸CreateFile/ReadFile/WriteFile絳夈傛墍浠ユ垜浠笉鑳界湅鍒?*File鍑芥暟灝卞彧鎯沖埌鏂囦歡璁懼銆備笌璁懼閫氫俊鏈変袱縐嶆柟寮忥紝鍚屾鏂瑰紡鍜屽紓姝ユ柟寮忋傚悓姝ユ柟寮忎笅錛屽綋璋冪敤ReadFile鍑芥暟鏃訛紝鍑芥暟浼氱瓑寰呯郴緇熸墽琛屽畬鎵瑕佹眰鐨勫伐浣滐紝鐒跺悗鎵嶈繑鍥烇紱寮傛鏂瑰紡涓嬶紝ReadFile榪欑被鍑芥暟浼氱洿鎺ヨ繑鍥烇紝緋葷粺鑷繁鍘誨畬鎴愬璁懼鐨勬搷浣滐紝鐒跺悗浠ユ煇縐嶆柟寮忛氱煡瀹屾垚鎿嶄綔銆?br /> 閲嶅彔I/O----欏懼悕鎬濅箟錛屽綋浣犺皟鐢ㄤ簡鏌愪釜鍑芥暟錛堟瘮濡俁eadFile錛夊氨绔嬪埢榪斿洖鍋氳嚜宸辯殑鍏朵粬鍔ㄤ綔鐨勬椂鍊欙紝鍚屾椂緋葷粺涔熷湪瀵笽/0璁懼榪涜浣犺姹傜殑鎿嶄綔錛屽湪榪欐鏃墮棿鍐呬綘鐨勭▼搴忓拰緋葷粺鐨勫唴閮ㄥ姩浣滄槸閲嶅彔鐨勶紝鍥犳鏈夋洿濂界殑鎬ц兘銆傛墍浠ワ紝閲嶅彔I/O鏄敤浜庡紓姝ユ柟寮忎笅浣跨敤I/O璁懼鐨勩?閲嶅彔I/O闇瑕佷嬌鐢ㄧ殑涓涓潪甯擱噸瑕佺殑鏁版嵁緇撴瀯OVERLAPPED銆?br /> <strong><br /> 2銆乄INDOWS<strong>瀹屾垚绔彛</strong>鐨勭壒鐐?br /> </strong>   Win32閲嶅彔I/O(Overlapped I/O)鏈哄埗鍏佽鍙戣搗涓涓搷浣滐紝鐒跺悗鍦ㄦ搷浣滃畬鎴愪箣鍚庢帴鍙楀埌淇℃伅銆傚浜庨偅縐嶉渶瑕佸緢闀挎椂闂存墠鑳藉畬鎴愮殑鎿嶄綔鏉ヨ錛岄噸鍙營O鏈哄埗灝ゅ叾鏈夌敤錛屽洜涓哄彂璧烽噸鍙犳搷浣滅殑綰跨▼鍦ㄩ噸鍙犺姹傚彂鍑哄悗灝卞彲浠ヨ嚜鐢辯殑鍋氬埆鐨勪簨鎯呬簡銆傚湪WinNT鍜學in2000涓婏紝鎻愪緵鐨勭湡姝g殑鍙墿灞曠殑I/O妯″瀷灝辨槸浣跨敤<strong>瀹屾垚绔彛</strong>錛圕ompletion Port錛夌殑閲嶅彔I/O.<strong>瀹屾垚绔彛</strong>---鏄竴縐峎INDOWS鍐呮牳瀵硅薄銆?strong>瀹屾垚绔彛</strong>鐢ㄤ簬寮傛鏂瑰紡鐨勯噸鍙營/0鎯呭喌涓嬶紝褰撶劧閲嶅彔I/O涓嶄竴瀹氶潪浣跨敤<strong>瀹屾垚绔彛</strong>涓嶅彲錛岃繕鏈夎澶囧唴鏍稿璞°佷簨浠跺璞°佸憡璀/0絳夈備絾鏄?strong>瀹屾垚绔彛</strong>鍐呴儴鎻愪緵浜嗙嚎紼嬫睜鐨勭鐞嗭紝鍙互閬垮厤鍙嶅鍒涘緩綰跨▼鐨勫紑閿錛屽悓鏃跺彲浠ユ牴鎹瓹PU鐨勪釜鏁扮伒媧葷殑鍐沖畾綰跨▼涓暟錛岃屼笖鍙互璁╁噺灝戠嚎紼嬭皟搴︾殑嬈℃暟浠庤屾彁楂樻ц兘鍏跺疄綾諱技浜嶹SAAsyncSelect鍜宻elect鍑芥暟鐨勬満鍒舵洿瀹規槗鍏煎Unix錛屼絾鏄毦浠ュ疄鐜版垜浠兂瑕佺殑“鎵╁睍鎬?#8221;銆傝屼笖windows鐨?strong>瀹屾垚绔彛</strong>鏈哄埗鍦ㄦ搷浣滅郴緇熷唴閮ㄥ凡緇忎綔浜嗕紭鍖栵紝鎻愪緵浜嗘洿楂樼殑鏁堢巼銆傛墍浠ワ紝鎴戜滑閫夋嫨<strong>瀹屾垚绔彛</strong>寮濮嬫垜浠殑鏈嶅姟鍣ㄧ▼搴忕殑寮鍙戙?br /> 1銆佸彂璧鋒搷浣滀笉涓瀹氬畬鎴愶紝緋葷粺浼氬湪瀹屾垚鐨勬椂鍊欓氱煡浣狅紝閫氳繃鐢ㄦ埛鍦?strong>瀹屾垚绔彛</strong>涓婄殑絳夊緟錛屽鐞嗘搷浣滅殑緇撴灉銆傛墍浠ヨ鏈夋鏌?strong>瀹屾垚绔彛</strong>錛屽彇鎿嶄綔緇撴灉鐨勭嚎紼嬨傚湪<strong>瀹屾垚绔彛</strong>涓婂畧鍊欑殑綰跨▼緋葷粺鏈変紭鍖栵紝闄ら潪鍦ㄦ墽琛岀殑綰跨▼闃誨錛屼笉浼氭湁鏂扮殑綰跨▼琚縺媧伙紝浠ユ鏉ュ噺灝戠嚎紼嬪垏鎹㈤犳垚鐨勬ц兘浠d環銆傛墍浠ュ鏋滅▼搴忎腑娌℃湁澶鐨勯樆濉炴搷浣滐紝娌℃湁蹇呰鍚姩澶鐨勭嚎紼嬶紝CPU鏁伴噺鐨勪袱鍊嶏紝涓鑸繖鏍鋒潵鍚姩綰跨▼銆?br /> 2銆佹搷浣滀笌鐩稿叧鏁版嵁鐨勭粦瀹氭柟寮忥細鍦ㄦ彁浜ゆ暟鎹殑鏃跺欑敤鎴峰鏁版嵁鎵撶浉搴旂殑鏍囪錛岃褰曟搷浣滅殑綾誨瀷錛屽湪鐢ㄦ埛澶勭悊鎿嶄綔緇撴灉鐨勬椂鍊欙紝閫氳繃媯鏌ヨ嚜宸辨墦鐨勬爣璁板拰緋葷粺鐨勬搷浣滅粨鏋滆繘琛岀浉搴旂殑澶勭悊銆?nbsp;<br /> 3銆佹搷浣滆繑鍥炵殑鏂瑰紡:涓鑸搷浣滃畬鎴愬悗瑕侀氱煡紼嬪簭榪涜鍚庣畫澶勭悊銆備絾鍐欐搷浣滃彲浠ヤ笉閫氱煡鐢ㄦ埛錛屾鏃跺鏋滅敤鎴峰啓鎿嶄綔涓嶈兘椹笂瀹屾垚錛屽啓鎿嶄綔鐨勭浉鍏蟲暟鎹細琚殏瀛樺埌鍒伴潪浜ゆ崲緙撳啿鍖轟腑錛屽湪鎿嶄綔瀹屾垚鐨勬椂鍊欙紝緋葷粺浼氳嚜鍔ㄩ噴鏀劇紦鍐插尯銆傛鏃跺彂璧峰畬鍐欐搷浣滐紝浣跨敤鐨勫唴瀛樺氨鍙互閲婃斁浜嗐傛鏃跺鏋滃崰鐢ㄩ潪浜ゆ崲緙撳啿澶浼氫嬌緋葷粺鍋滄鍝嶅簲銆?br /> <strong><br /> 3銆?strong>瀹屾垚绔彛</strong>錛圕ompletion Ports 錛夌浉鍏蟲暟鎹粨鏋勫拰鍒涘緩<br /> </strong>    鍏跺疄鍙互鎶?strong>瀹屾垚绔彛</strong>鐪嬫垚緋葷粺緇存姢鐨勪竴涓槦鍒楋紝鎿嶄綔緋葷粺鎶婇噸鍙營O鎿嶄綔瀹屾垚鐨勪簨浠墮氱煡鏀懼埌璇ラ槦鍒楅噷錛岀敱浜庢槸鏆撮湶 “鎿嶄綔瀹屾垚”鐨勪簨浠墮氱煡錛屾墍浠ュ懡鍚嶄負“<strong>瀹屾垚绔彛</strong>”錛圕Ompletion Ports錛夈備竴涓猻ocket琚垱寤哄悗錛屽彲浠ュ湪浠諱綍鏃跺埢鍜屼竴涓?strong>瀹屾垚绔彛</strong>鑱旂郴璧鋒潵銆?br /> <strong>瀹屾垚绔彛</strong>鐩稿叧鏈閲嶈鐨勬槸OVERLAPPED鏁版嵁緇撴瀯<br /> typedef struct _OVERLAPPED { <br />     ULONG_PTR Internal;//琚郴緇熷唴閮ㄨ祴鍊鹼紝鐢ㄦ潵琛ㄧず緋葷粺鐘舵?nbsp;<br />     ULONG_PTR InternalHigh;// 琚郴緇熷唴閮ㄨ祴鍊鹼紝浼犺緭鐨勫瓧鑺傛暟 <br />     union { <br />         struct { <br />             DWORD Offset;//鍜孫ffsetHigh鍚堟垚涓涓?4浣嶇殑鏁存暟錛岀敤鏉ヨ〃紺轟粠鏂囦歡澶撮儴鐨勫灝戝瓧鑺傚紑濮?nbsp;<br />             DWORD OffsetHigh;//鎿嶄綔錛屽鏋滀笉鏄鏂囦歡I/O鏉ユ搷浣滐紝鍒欏繀欏昏瀹氫負0 <br />         }; <br />         PVOID Pointer; <br />     }; <br />     HANDLE hEvent;//濡傛灉涓嶄嬌鐢紝灝卞姟蹇呰涓?,鍚﹀垯璇瘋祴涓涓湁鏁堢殑Event鍙ユ焺 <br /> } OVERLAPPED, *LPOVERLAPPED; <br /> <br /> 涓嬮潰鏄紓姝ユ柟寮忎嬌鐢≧eadFile鐨勪竴涓緥瀛?nbsp;<br /> OVERLAPPED Overlapped; <br /> Overlapped.Offset=345; <br /> Overlapped.OffsetHigh=0; <br /> Overlapped.hEvent=0; <br /> //鍋囧畾鍏朵粬鍙傛暟閮藉凡緇忚鍒濆鍖?nbsp;<br /> ReadFile(hFile,buffer,sizeof(buffer),&dwNumBytesRead,&Overlapped); <br /> 榪欐牱灝卞畬鎴愪簡寮傛鏂瑰紡璇繪枃浠剁殑鎿嶄綔錛岀劧鍚嶳eadFile鍑芥暟榪斿洖錛岀敱鎿嶄綔緋葷粺鍋氳嚜宸辯殑浜嬫儏錛屼笅闈粙緇嶅嚑涓笌OVERLAPPED緇撴瀯鐩稿叧鐨勫嚱鏁?nbsp;<br /> 絳夊緟閲嶅彔I/0鎿嶄綔瀹屾垚鐨勫嚱鏁?nbsp;<br /> BOOL GetOverlappedResult (<br /> HANDLE hFile,<br /> LPOVERLAPPED lpOverlapped,//鎺ュ彈榪斿洖鐨勯噸鍙營/0緇撴瀯<br /> LPDWORD lpcbTransfer,//鎴愬姛浼犺緭浜嗗灝戝瓧鑺傛暟<br /> BOOL fWait //TRUE鍙湁褰撴搷浣滃畬鎴愭墠榪斿洖錛孎ALSE鐩存帴榪斿洖錛屽鏋滄搷浣滄病鏈夊畬鎴愶紝閫氳繃璋?/鐢℅etLastError ( )鍑芥暟浼氳繑鍥濫RROR_IO_INCOMPLETE <br /> );<br /> 瀹廐asOverlappedIoCompleted鍙互甯姪鎴戜滑嫻嬭瘯閲嶅彔I/0鎿嶄綔鏄惁瀹屾垚錛岃瀹忓OVERLAPPED緇撴瀯鐨処nternal鎴愬憳榪涜浜嗘祴璇曪紝鏌ョ湅鏄惁絳変簬STATUS_PENDING鍊箋?/p> <p>        涓鑸潵璇達紝涓涓簲鐢ㄧ▼搴忓彲浠ュ垱寤哄涓伐浣滅嚎紼嬫潵澶勭悊<strong>瀹屾垚绔彛</strong>涓婄殑閫氱煡浜嬩歡銆傚伐浣滅嚎紼嬬殑鏁伴噺渚濊禆浜庣▼搴忕殑鍏蜂綋闇瑕併備絾鏄湪鐞嗘兂鐨勬儏鍐典笅錛屽簲璇ュ搴斾竴涓狢PU鍒涘緩涓涓嚎紼嬨傚洜涓哄湪<strong>瀹屾垚绔彛</strong>鐞嗘兂妯″瀷涓紝姣忎釜綰跨▼閮藉彲浠ヤ粠緋葷粺鑾峰緱涓涓?#8220;鍘熷瓙”鎬х殑鏃墮棿鐗囷紝杞暘榪愯騫舵鏌?strong>瀹屾垚绔彛</strong>錛岀嚎紼嬬殑鍒囨崲鏄澶栫殑寮閿銆傚湪瀹為檯寮鍙戠殑鏃跺欙紝榪樿鑰冭檻榪欎簺綰跨▼鏄惁鐗墊秹鍒板叾浠栧牭濉炴搷浣滅殑鎯呭喌銆傚鏋滄煇綰跨▼榪涜鍫靛鎿嶄綔錛岀郴緇熷垯灝嗗叾鎸傝搗錛岃鍒殑綰跨▼鑾峰緱榪愯鏃墮棿銆傚洜姝わ紝濡傛灉鏈夎繖鏍風殑鎯呭喌錛屽彲浠ュ鍒涘緩鍑犱釜綰跨▼鏉ュ敖閲忓埄鐢ㄦ椂闂淬?br /> 搴旂敤<strong>瀹屾垚绔彛</strong>錛?br />     鍒涘緩<strong>瀹屾垚绔彛</strong>錛?strong>瀹屾垚绔彛</strong>鏄竴涓唴鏍稿璞★紝浣跨敤鏃朵粬鎬繪槸瑕佸拰鑷沖皯涓涓湁鏁堢殑璁懼鍙ユ焺榪涜鍏寵仈錛?strong>瀹屾垚绔彛</strong>鏄竴涓鏉傜殑鍐呮牳瀵硅薄錛屽垱寤哄畠鐨勫嚱鏁版槸錛?br /> HANDLE CreateIoCompletionPort( <br />     IN HANDLE FileHandle, <br />     IN HANDLE ExistingCompletionPort, <br />     IN ULONG_PTR CompletionKey, <br />     IN DWORD NumberOfConcurrentThreads <br />     ); <br /> <br /> 閫氬父鍒涘緩宸ヤ綔鍒嗕袱姝ワ細<br /> 絎竴姝ワ紝鍒涘緩涓涓柊鐨?strong>瀹屾垚绔彛</strong>鍐呮牳瀵硅薄錛屽彲浠ヤ嬌鐢ㄤ笅闈㈢殑鍑芥暟錛?br />        HANDLE CreateNewCompletionPort(DWORD dwNumberOfThreads) <br /> { <br />           return CreateIoCompletionPort(INVALID_HANDLE_VALUE,NULL,NULL,dwNumberOfThreads); <br /> };<br />        <br /> 絎簩姝ワ紝灝嗗垰鍒涘緩鐨?strong>瀹屾垚绔彛</strong>鍜屼竴涓湁鏁堢殑璁懼鍙ユ焺鍏寵仈璧鋒潵錛屽彲浠ヤ嬌鐢ㄤ笅闈㈢殑鍑芥暟錛?br />        bool AssicoateDeviceWithCompletionPort(HANDLE hCompPort,HANDLE hDevice,DWORD dwCompKey) <br /> { <br />           HANDLE h=CreateIoCompletionPort(hDevice,hCompPort,dwCompKey,0); <br />           return h==hCompPort; <br /> }; <br /> 璇存槑 <br /> 1錛?CreateIoCompletionPort鍑芥暟涔熷彲浠ヤ竴嬈℃х殑鏃㈠垱寤?strong>瀹屾垚绔彛</strong>瀵硅薄錛屽張鍏寵仈鍒頒竴涓湁鏁堢殑璁懼鍙ユ焺 <br /> 2錛?CompletionKey鏄竴涓彲浠ヨ嚜宸卞畾涔夌殑鍙傛暟錛屾垜浠彲浠ユ妸涓涓粨鏋勭殑鍦板潃璧嬬粰瀹冿紝鐒跺悗鍦ㄥ悎閫傜殑鏃跺欏彇鍑烘潵浣跨敤錛屾渶濂借淇濊瘉緇撴瀯閲岄潰鐨勫唴瀛樹笉鏄垎閰嶅湪鏍堜笂錛岄櫎闈炰綘鏈夊崄鍒嗙殑鎶婃彙鍐呭瓨浼氫繚鐣欏埌浣犺浣跨敤鐨勯偅涓鍒匯?br /> 3錛?NumberOfConcurrentThreads閫氬父鐢ㄦ潵鎸囧畾瑕佸厑璁稿悓鏃惰繍琛岀殑鐨勭嚎紼嬬殑鏈澶т釜鏁般傞氬父鎴戜滑鎸囧畾涓?錛岃繖鏍風郴緇熶細鏍規嵁CPU鐨勪釜鏁版潵鑷姩紜畾銆傚垱寤哄拰鍏寵仈鐨勫姩浣滃畬鎴愬悗錛岀郴緇熶細灝?strong>瀹屾垚绔彛</strong>鍏寵仈鐨勮澶囧彞鏌勩佸畬鎴愰敭浣滀負涓鏉$邯褰曞姞鍏ュ埌榪欎釜<strong>瀹屾垚绔彛</strong>鐨勮澶囧垪琛ㄤ腑銆傚鏋滀綘鏈夊涓?strong>瀹屾垚绔彛</strong>錛屽氨浼氭湁澶氫釜瀵瑰簲鐨勮澶囧垪琛ㄣ傚鏋滆澶囧彞鏌勮鍏抽棴錛屽垯琛ㄤ腑鑷姩鍒犻櫎璇ョ邯褰曘?br /> <strong><br /> 4銆?strong>瀹屾垚绔彛</strong>綰跨▼鐨勫伐浣滃師鐞?/strong><br /> <strong>瀹屾垚绔彛</strong>鍙互甯姪鎴戜滑綆$悊綰跨▼姹狅紝浣嗘槸綰跨▼姹犱腑鐨勭嚎紼嬮渶瑕佹垜浠嬌鐢╛beginthreadex鏉ュ垱寤猴紝鍑粈涔堥氱煡<strong>瀹屾垚绔彛</strong>綆$悊鎴戜滑鐨勬柊綰跨▼鍛紵絳旀鍦ㄥ嚱鏁癎etQueuedCompletionStatus銆傝鍑芥暟鍘熷瀷錛?nbsp;<br /> BOOL GetQueuedCompletionStatus( <br />     IN HANDLE CompletionPort, <br />     OUT LPDWORD lpNumberOfBytesTransferred, <br />     OUT PULONG_PTR lpCompletionKey, <br />     OUT LPOVERLAPPED *lpOverlapped, <br />     IN DWORD dwMilliseconds <br /> ); <br /> 榪欎釜鍑芥暟璇曞浘浠庢寚瀹氱殑<strong>瀹屾垚绔彛</strong>鐨処/0瀹屾垚闃熷垪涓娊鍙栫邯褰曘傚彧鏈夊綋閲嶅彔I/O鍔ㄤ綔瀹屾垚鐨勬椂鍊欙紝瀹屾垚闃熷垪涓墠鏈夌邯褰曘傚嚒鏄皟鐢ㄨ繖涓嚱鏁扮殑綰跨▼灝嗚鏀懼叆鍒?strong>瀹屾垚绔彛</strong>鐨勭瓑寰呯嚎紼嬮槦鍒椾腑錛屽洜姝?strong>瀹屾垚绔彛</strong>灝卞彲浠ュ湪鑷繁鐨勭嚎紼嬫睜涓府鍔╂垜浠淮鎶よ繖涓嚎紼嬨?strong>瀹屾垚绔彛</strong>鐨処/0瀹屾垚闃熷垪涓瓨鏀句簡褰撻噸鍙營/0瀹屾垚鐨勭粨鏋?--- 涓鏉$邯褰曪紝璇ョ邯褰曟嫢鏈夊洓涓瓧孌碉紝鍓嶄笁欏瑰氨瀵瑰簲GetQueuedCompletionStatus鍑芥暟鐨?銆?銆?鍙傛暟錛屾渶鍚庝竴涓瓧孌墊槸閿欒淇℃伅dwError銆傛垜浠篃鍙互閫氳繃璋冪敤PostQueudCompletionStatus妯℃嫙瀹屾垚浜嗕竴涓噸鍙營/0鎿嶄綔銆?nbsp;<br /> 褰揑/0瀹屾垚闃熷垪涓嚭鐜頒簡綰綍錛?strong>瀹屾垚绔彛</strong>灝嗕細媯鏌ョ瓑寰呯嚎紼嬮槦鍒楋紝璇ラ槦鍒椾腑鐨勭嚎紼嬮兘鏄氳繃璋冪敤GetQueuedCompletionStatus鍑芥暟浣胯嚜宸卞姞鍏ラ槦鍒楃殑銆傜瓑寰呯嚎紼嬮槦鍒楀緢綆鍗曪紝鍙槸淇濆瓨浜嗚繖浜涚嚎紼嬬殑ID銆?strong>瀹屾垚绔彛</strong>浼氭寜鐓у悗榪涘厛鍑虹殑鍘熷垯灝嗕竴涓嚎紼嬮槦鍒楃殑ID鏀懼叆鍒伴噴鏀劇嚎紼嬪垪琛ㄤ腑錛屽悓鏃惰綰跨▼灝嗕粠絳夊緟GetQueuedCompletionStatus鍑芥暟榪斿洖鐨勭潯鐪犵姸鎬佷腑鍙樹負鍙皟搴︾姸鎬佺瓑寰匔PU鐨勮皟搴︺傛墍浠ユ垜浠殑綰跨▼瑕佹兂鎴愪負<strong>瀹屾垚绔彛</strong>綆$悊鐨勭嚎紼嬶紝灝卞繀欏昏璋冪敤GetQueuedCompletionStatus鍑芥暟銆傚嚭浜庢ц兘鐨勪紭鍖栵紝瀹為檯涓?strong>瀹屾垚绔彛</strong>榪樼淮鎶や簡涓涓殏鍋滅嚎紼嬪垪琛紝鍏蜂綋緇嗚妭鍙互鍙傝冦奧indows楂樼駭緙栫▼鎸囧崡銆嬶紝鎴戜滑鐜板湪鐭ラ亾鐨勭煡璇嗭紝宸茬粡瓚沖浜嗐?nbsp;<strong>瀹屾垚绔彛</strong>綰跨▼闂存暟鎹紶閫掔嚎紼嬮棿浼犻掓暟鎹渶甯哥敤鐨勫姙娉曟槸鍦╛beginthreadex鍑芥暟涓皢鍙傛暟浼犻掔粰綰跨▼鍑芥暟錛屾垨鑰呬嬌鐢ㄥ叏灞鍙橀噺銆備絾鏄?strong>瀹屾垚绔彛</strong>榪樻湁鑷繁鐨勪紶閫掓暟鎹殑鏂規硶錛岀瓟妗堝氨鍦ㄤ簬CompletionKey鍜孫VERLAPPED鍙傛暟銆?br /> CompletionKey琚繚瀛樺湪<strong>瀹屾垚绔彛</strong>鐨勮澶囪〃涓紝鏄拰璁懼鍙ユ焺涓涓瀵瑰簲鐨勶紝鎴戜滑鍙互灝嗕笌璁懼鍙ユ焺鐩稿叧鐨勬暟鎹繚瀛樺埌CompletionKey涓紝鎴栬呭皢CompletionKey琛ㄧず涓虹粨鏋勬寚閽堬紝榪欐牱灝卞彲浠ヤ紶閫掓洿鍔犱赴瀵岀殑鍐呭銆傝繖浜涘唴瀹瑰彧鑳藉湪涓寮濮嬪叧鑱?strong>瀹屾垚绔彛</strong>鍜岃澶囧彞鏌勭殑鏃跺欏仛錛屽洜姝や笉鑳藉湪浠ュ悗鍔ㄦ佹敼鍙樸?br /> OVERLAPPED鍙傛暟鏄湪姣忔璋冪敤ReadFile榪欐牱鐨勬敮鎸侀噸鍙營/0鐨勫嚱鏁版椂浼犻掔粰<strong>瀹屾垚绔彛</strong>鐨勩傛垜浠彲浠ョ湅鍒幫紝濡傛灉鎴戜滑涓嶆槸瀵規枃浠惰澶囧仛鎿嶄綔錛岃緇撴瀯鐨勬垚鍛樺彉閲忓氨瀵規垜浠嚑涔庢鏃犱綔鐢ㄣ傛垜浠渶瑕侀檮鍔犱俊鎭紝鍙互鍒涘緩鑷繁鐨勭粨鏋勶紝鐒跺悗灝哋VERLAPPED緇撴瀯鍙橀噺浣滀負鎴戜滑緇撴瀯鍙橀噺鐨勭涓涓垚鍛橈紝鐒跺悗浼犻掔涓涓垚鍛樺彉閲忕殑鍦板潃緇橰eadFile鍑芥暟銆傚洜涓虹被鍨嬪尮閰嶏紝褰撶劧鍙互閫氳繃緙栬瘧銆傚綋GetQueuedCompletionStatus鍑芥暟榪斿洖鏃訛紝鎴戜滑鍙互鑾峰彇鍒扮涓涓垚鍛樺彉閲忕殑鍦板潃錛岀劧鍚庝竴涓畝鍗曠殑寮哄埗杞崲錛屾垜浠氨鍙互鎶婂畠褰撲綔瀹屾暣鐨勮嚜瀹氫箟緇撴瀯鐨勬寚閽堜嬌鐢紝榪欐牱灝卞彲浠ヤ紶閫掑緢澶氶檮鍔犵殑鏁版嵁浜嗐傚お濂戒簡錛佸彧鏈変竴鐐硅娉ㄦ剰錛屽鏋滆法綰跨▼浼犻掞紝璇鋒敞鎰忓皢鏁版嵁鍒嗛厤鍒板爢涓婏紝騫朵笖鎺ユ敹绔簲璇ュ皢鏁版嵁鐢ㄥ畬鍚庨噴鏀俱傛垜浠氬父闇瑕佸皢ReadFile榪欐牱鐨勫紓姝ュ嚱鏁扮殑鎵闇瑕佺殑緙撳啿鍖烘斁鍒版垜浠嚜瀹氫箟鐨勭粨鏋勪腑錛岃繖鏍峰綋GetQueuedCompletionStatus琚繑鍥炴椂錛屾垜浠殑鑷畾涔夌粨鏋勭殑緙撳啿鍖哄彉閲忎腑灝卞瓨鏀句簡I/0鎿嶄綔鐨勬暟鎹侰ompletionKey鍜孫VERLAPPED鍙傛暟錛岄兘鍙互閫氳繃GetQueuedCompletionStatus鍑芥暟鑾峰緱銆?br /> 綰跨▼鐨勫畨鍏ㄩ鍑?br />        寰堝綰跨▼涓轟簡涓嶆涓嬈$殑鎵ц寮傛鏁版嵁澶勭悊錛岄渶瑕佷嬌鐢ㄥ涓嬭鍙?br /> while (true)<br /> {<br />        ......<br />        GetQueuedCompletionStatus(...); <br />         ......<br /> }<br /> 閭d箞濡備綍閫鍑哄憿錛岀瓟妗堝氨鍦ㄤ簬涓婇潰鏇炬彁鍒扮殑PostQueudCompletionStatus鍑芥暟錛屾垜浠彲浠ョ敤瀹冨彂閫佷竴涓嚜瀹氫箟鐨勫寘鍚簡OVERLAPPED鎴愬憳鍙橀噺鐨勭粨鏋勫湴鍧錛岄噷闈㈠寘鍚竴涓姸鎬佸彉閲忥紝褰撶姸鎬佸彉閲忎負閫鍑烘爣蹇楁椂錛岀嚎紼嬪氨鎵ц娓呴櫎鍔ㄤ綔鐒跺悗閫鍑恒?br /> <strong><br /> 5銆乄indows<strong>瀹屾垚绔彛</strong>鐨勫疄渚嬩唬鐮侊細<br /> </strong>DWORD WINAPI WorkerThread(LPVOID lpParam)<br /> { <br /> ULONG_PTR *PerHandleKey;<br /> OVERLAPPED *Overlap;<br /> OVERLAPPEDPLUS *OverlapPlus,<br /> *newolp;<br /> DWORD dwBytesXfered;<br /> while (1)<br /> {<br /> ret = GetQueuedCompletionStatus(<br /> hIocp,<br /> &dwBytesXfered,<br /> (PULONG_PTR)&PerHandleKey,<br /> &Overlap,<br /> INFINITE);<br /> if (ret == 0)<br /> {<br /> // Operation failed<br /> continue;<br /> }<br /> OverlapPlus = CONTAINING_RECORD(Overlap, OVERLAPPEDPLUS, ol);<br /> switch (OverlapPlus->OpCode)<br /> {<br /> case OP_ACCEPT:<br /> // Client socket is contained in OverlapPlus.sclient<br /> // Add client to completion port<br /> CreateIoCompletionPort(<br /> (HANDLE)OverlapPlus->sclient,<br /> hIocp,<br /> (ULONG_PTR)0,<br /> 0);<br /> // Need a new OVERLAPPEDPLUS structure<br /> // for the newly accepted socket. Perhaps<br /> // keep a look aside list of free structures.<br /> newolp = AllocateOverlappedPlus();<br /> if (!newolp)<br /> {<br /> // Error<br /> }<br /> newolp->s = OverlapPlus->sclient;<br /> newolp->OpCode = OP_READ;<br /> // This function divpares the data to be sent<br /> PrepareSendBuffer(&newolp->wbuf);<br /> ret = WSASend(<br /> newolp->s,<br /> &newolp->wbuf,<br /> 1,<br /> &newolp->dwBytes,<br /> 0,<br /> &newolp.ol,<br /> NULL);<br /> if (ret == SOCKET_ERROR)<br /> {<br /> if (WSAGetLastError() != WSA_IO_PENDING)<br /> {<br /> // Error<br /> }<br /> }<br /> // Put structure in look aside list for later use<br /> FreeOverlappedPlus(OverlapPlus);<br /> // Signal accept thread to issue another AcceptEx<br /> SetEvent(hAcceptThread);<br /> break;<br /> case OP_READ:<br /> // Process the data read <br /> // Repost the read if necessary, reusing the same<br /> // receive buffer as before<br /> memset(&OverlapPlus->ol, 0, sizeof(OVERLAPPED));<br /> ret = WSARecv(<br /> OverlapPlus->s,<br /> &OverlapPlus->wbuf,<br /> 1,<br /> &OverlapPlus->dwBytes,<br /> &OverlapPlus->dwFlags,<br /> &OverlapPlus->ol,<br /> NULL);<br /> if (ret == SOCKET_ERROR)<br /> {<br /> if (WSAGetLastError() != WSA_IO_PENDING)<br /> {<br /> // Error<br /> }<br /> }<br /> break;<br /> case OP_WRITE:<br /> // Process the data sent, etc.<br /> break;<br /> } // switch<br /> } // while<br /> } // WorkerThread<br /> </p> <p>鏌ョ湅浠ヤ笂浠g爜錛屾敞鎰忓鏋淥verlapped鎿嶄綔绔嬪埢澶辮觸錛堟瘮濡傦紝榪斿洖SOCKET_ERROR鎴栧叾浠栭潪WSA_IO_PENDING鐨勯敊璇級錛屽垯娌℃湁浠諱綍瀹屾垚閫氱煡鏃墮棿浼氳鏀懼埌<strong>瀹屾垚绔彛</strong>闃熷垪閲屻傚弽涔嬶紝鍒欎竴瀹氭湁鐩稿簲鐨勯氱煡鏃墮棿琚斁鍒?strong>瀹屾垚绔彛</strong>闃熷垪銆傛洿瀹屽杽鐨勫叧浜嶹insock鐨?strong>瀹屾垚绔彛</strong>鏈哄埗錛屽彲浠ュ弬鑰僊SDN鐨凪icrosoft PlatFormSDK錛岄偅閲屾湁<strong>瀹屾垚绔彛</strong>鐨勪緥瀛愩傝闂?a >http://msdn.microsoft.com/library/techart/msdn_servrapp.htm</a>鍙互鑾峰緱鏇村淇℃伅銆?/p> <p><strong>Linux鐨?strong>EPoll</strong>妯″瀷<br /> </strong>Linux 2.6鍐呮牳涓彁楂樼綉緇淚/O鎬ц兘鐨勬柊鏂規硶-<strong>epoll</strong> I/O澶氳礬澶嶇敤鎶鏈湪姣旇緝澶氱殑TCP緗戠粶鏈嶅姟鍣ㄤ腑鏈変嬌鐢紝鍗蟲瘮杈冨鐨勭敤鍒皊elect鍑芥暟銆?br /> <br /> <strong>1銆佷負浠涔坰elect钀藉悗<br /> </strong>棣栧厛錛屽湪Linux鍐呮牳涓紝select鎵鐢ㄥ埌鐨凢D_SET鏄湁闄愮殑錛屽嵆鍐呮牳涓湁涓弬鏁癬_FD_SETSIZE瀹氫箟浜嗘瘡涓狥D_SET鐨勫彞鏌勪釜鏁幫紝鍦ㄦ垜鐢ㄧ殑2.6.15-25-386鍐呮牳涓紝璇ュ兼槸1024錛屾悳绱㈠唴鏍告簮浠g爜寰楀埌錛?br /> include/linux/posix_types.h:#define __FD_SETSIZE         1024<br /> 涔熷氨鏄錛屽鏋滄兂瑕佸悓鏃舵嫻?025涓彞鏌勭殑鍙鐘舵佹槸涓嶅彲鑳界敤select瀹炵幇鐨勩傛垨鑰呭悓鏃舵嫻?025涓彞鏌勭殑鍙啓鐘舵佷篃鏄笉鍙兘鐨勩傚叾嬈★紝鍐呮牳涓疄鐜皊elect鏄敤杞鏂規硶錛屽嵆姣忔媯嫻嬮兘浼氶亶鍘嗘墍鏈塅D_SET涓殑鍙ユ焺錛屾樉鐒訛紝select鍑芥暟鎵ц鏃墮棿涓嶧D_SET涓殑鍙ユ焺涓暟鏈変竴涓瘮渚嬪叧緋伙紝鍗硈elect瑕佹嫻嬬殑鍙ユ焺鏁拌秺澶氬氨浼氳秺璐規椂銆傚綋鐒訛紝鍦ㄥ墠鏂囦腑鎴戝茍娌℃湁鎻愬強poll鏂規硶錛屼簨瀹炰笂鐢╯elect鐨勬湅鍙嬩竴瀹氫篃璇曡繃poll錛屾垜涓漢瑙夊緱select鍜宲oll澶у悓灝忓紓錛屼釜浜哄亸濂戒簬鐢╯elect鑰屽凡銆?/p> <p><strong>2銆佸唴鏍鎬腑鎻愰珮I/O鎬ц兘鐨勬柊鏂規硶<strong>epoll</strong></strong><br /> <strong>epoll</strong>鏄粈涔堬紵鎸夌収man鎵嬪唽鐨勮娉曪細鏄負澶勭悊澶ф壒閲忓彞鏌勮屼綔浜嗘敼榪涚殑poll銆傝浣跨敤<strong>epoll</strong>鍙渶瑕佽繖涓変釜緋葷粺璋冪敤錛?strong>epoll</strong>_create(2)錛?nbsp;<strong>epoll</strong>_ctl(2)錛?nbsp;<strong>epoll</strong>_wait(2)銆?br /> 褰撶劧錛岃繖涓嶆槸2.6鍐呮牳鎵嶆湁鐨勶紝瀹冩槸鍦?.5.44鍐呮牳涓寮曡繘鐨?<strong>epoll</strong>(4) is a new API introduced in Linux kernel 2.5.44)</p> <p>Linux2.6鍐呮牳<strong>epoll</strong>浠嬬粛<br /> 鍏堜粙緇?鏈功銆奣he Linux Networking Architecture--Design and Implementation of Network Protocols in the Linux Kernel銆嬶紝浠?.4鍐呮牳璁茶ВLinux TCP/IP瀹炵幇錛岀浉褰撲笉閿?浣滀負涓涓幇瀹炰笘鐣屼腑鐨勫疄鐜幫紝寰堝鏃跺欎綘蹇呴』浣滃緢澶氭潈琛★紝榪欐椂鍊欏弬鑰冧竴涓箙緇忚冮獙鐨勭郴緇熸洿鏈夊疄闄呮剰涔夈備婦涓緥瀛?linux鍐呮牳涓璼k_buff緇撴瀯涓轟簡榪芥眰閫熷害鍜屽畨鍏紝鐗虹壊浜嗛儴鍒嗗唴瀛橈紝鎵浠ュ湪鍙戦乀CP鍖呯殑鏃跺欙紝鏃犺搴旂敤灞傛暟鎹澶?sk_buff鏈灝忎篃鏈?72鐨勫瓧鑺?鍏跺疄瀵逛簬socket搴旂敤灞傜▼搴忔潵璇達紝鍙﹀涓鏈功銆奤NIX Network Programming Volume 1銆嬫剰涔夋洿澶т竴鐐?2003騫寸殑鏃跺欙紝榪欐湰涔﹀嚭浜嗘渶鏂扮殑絎?鐗堟湰錛屼笉榪囦富瑕佽繕鏄慨璁㈢2鐗堟湰銆傚叾涓6绔犮奍/O Multiplexing銆嬫槸鏈閲嶈鐨勩係tevens緇欏嚭浜嗙綉緇淚O鐨勫熀鏈ā鍨嬨傚湪榪欓噷鏈閲嶈鐨勮帿榪囦簬select妯″瀷鍜孉synchronous I/O妯″瀷.浠庣悊璁轟笂璇達紝AIO浼間箮鏄渶楂樻晥鐨勶紝浣犵殑IO鎿嶄綔鍙互绔嬪嵆榪斿洖錛岀劧鍚庣瓑寰卭s鍛婅瘔浣營O鎿嶄綔瀹屾垚銆備絾鏄竴鐩翠互鏉ワ紝濡備綍瀹炵幇灝辨病鏈変竴涓畬緹庣殑鏂規銆傛渶钁楀悕鐨剋indows<strong>瀹屾垚绔彛</strong>瀹炵幇鐨凙IO,瀹為檯涓婁篃鏄唴閮ㄧ敤綰跨▼姹犲疄鐜扮殑緗簡錛屾渶鍚庣殑緇撴灉鏄疘O鏈変釜綰跨▼姹狅紝浣犲簲鐢ㄤ篃闇瑕佷竴涓嚎紼嬫睜...... 寰堝鏂囨。鍏跺疄宸茬粡鎸囧嚭浜嗚繖甯︽潵鐨勭嚎紼媍ontext-switch甯︽潵鐨勪唬浠楓傚湪linux 騫沖彴涓婏紝鍏充簬緗戠粶AIO涓鐩存槸鏀瑰姩鏈澶氱殑鍦版柟錛?.4鐨勫勾浠e氨鏈夊緢澶欰IO鍐呮牳patch,鏈钁楀悕鐨勫簲璇ョ畻鏄疭GI閭d釜銆備絾鏄竴鐩村埌2.6鍐呮牳鍙戝竷錛岀綉緇滄ā鍧楃殑AIO涓鐩存病鏈夎繘鍏ョǔ瀹氬唴鏍哥増鏈?澶ч儴鍒嗛兘鏄嬌鐢ㄧ敤鎴風嚎紼嬫ā鎷熸柟娉曪紝鍦ㄤ嬌鐢ㄤ簡NPTL鐨刲inux涓婇潰鍏跺疄鍜寃indows鐨?strong>瀹屾垚绔彛</strong>鍩烘湰涓婂樊涓嶅浜?銆?.6鍐呮牳鎵鏀寔鐨凙IO鐗規寚紓佺洏鐨凙IO---鏀寔io_submit(),io_getevents()浠ュ強瀵笵irect IO鐨勬敮鎸?灝辨槸緇曡繃VFS緋葷粺buffer鐩存帴鍐欑‖鐩橈紝瀵逛簬嫻佹湇鍔″櫒鍦ㄥ唴瀛樺鉤紼蟲т笂鏈夌浉褰撳府鍔?銆?br /> 鎵浠ワ紝鍓╀笅鐨剆elect妯″瀷鍩烘湰涓婂氨鏄垜浠湪linux涓婇潰鐨勫敮涓閫夋嫨錛屽叾瀹烇紝濡傛灉鍔犱笂no-block socket鐨勯厤緗紝鍙互瀹屾垚涓涓?浼?AIO鐨勫疄鐜幫紝鍙笉榪囨帹鍔ㄥ姏鍦ㄤ簬浣犺屼笉鏄痮s鑰屽凡銆備笉榪囦紶緇熺殑select/poll鍑芥暟鏈夌潃涓浜涙棤娉曞繊鍙楃殑緙虹偣錛屾墍浠ユ敼榪涗竴鐩存槸2.4-2.5寮鍙戠増鏈唴鏍哥殑浠誨姟錛屽寘鎷?dev/poll錛宺ealtime signal絳夌瓑銆傛渶緇堬紝Davide Libenzi寮鍙戠殑<strong>epoll</strong>榪涘叆2.6鍐呮牳鎴愪負姝e紡鐨勮В鍐蟲柟妗?br /> <strong><br /> 3銆?strong>epoll</strong>鐨勪紭鐐?/strong><br /> <1>鏀寔涓涓繘紼嬫墦寮澶ф暟鐩殑socket鎻忚堪絎?FD)<br /> select 鏈涓嶈兘蹇嶅彈鐨勬槸涓涓繘紼嬫墍鎵撳紑鐨凢D鏄湁涓瀹氶檺鍒剁殑錛岀敱FD_SETSIZE璁劇疆錛岄粯璁ゅ兼槸2048銆傚浜庨偅浜涢渶瑕佹敮鎸佺殑涓婁竾榪炴帴鏁扮洰鐨処M鏈嶅姟鍣ㄦ潵璇存樉鐒跺お灝戜簡銆傝繖鏃跺欎綘涓鏄彲浠ラ夋嫨淇敼榪欎釜瀹忕劧鍚庨噸鏂扮紪璇戝唴鏍革紝涓嶈繃璧勬枡涔熷悓鏃舵寚鍑鴻繖鏍蜂細甯︽潵緗戠粶鏁堢巼鐨勪笅闄嶏紝浜屾槸鍙互閫夋嫨澶氳繘紼嬬殑瑙e喅鏂規(浼犵粺鐨凙pache鏂規)錛屼笉榪囪櫧鐒秎inux涓婇潰鍒涘緩榪涚▼鐨勪唬浠鋒瘮杈冨皬錛屼絾浠嶆棫鏄笉鍙拷瑙嗙殑錛屽姞涓婅繘紼嬮棿鏁版嵁鍚屾榪滄瘮涓嶄笂綰跨▼闂村悓姝ョ殑楂樻晥錛屾墍浠ヤ篃涓嶆槸涓縐嶅畬緹庣殑鏂規銆備笉榪?nbsp;<strong>epoll</strong>鍒欐病鏈夎繖涓檺鍒訛紝瀹冩墍鏀寔鐨凢D涓婇檺鏄渶澶у彲浠ユ墦寮鏂囦歡鐨勬暟鐩紝榪欎釜鏁板瓧涓鑸繙澶т簬2048,涓句釜渚嬪瓙,鍦?GB鍐呭瓨鐨勬満鍣ㄤ笂澶х害鏄?0涓囧乏鍙籌紝鍏蜂綋鏁扮洰鍙互cat /proc/sys/fs/file-max瀵熺湅,涓鑸潵璇磋繖涓暟鐩拰緋葷粺鍐呭瓨鍏崇郴寰堝ぇ銆?br /> <2>IO鏁堢巼涓嶉殢FD鏁扮洰澧炲姞鑰岀嚎鎬т笅闄?br /> 浼犵粺鐨剆elect/poll鍙︿竴涓嚧鍛藉急鐐瑰氨鏄綋浣犳嫢鏈変竴涓緢澶х殑socket闆嗗悎錛屼笉榪囩敱浜庣綉緇滃歡鏃訛紝浠諱竴鏃墮棿鍙湁閮ㄥ垎鐨剆ocket鏄?媧昏穬"鐨勶紝浣嗘槸select/poll姣忔璋冪敤閮戒細綰挎ф壂鎻忓叏閮ㄧ殑闆嗗悎錛屽鑷存晥鐜囧憟鐜扮嚎鎬т笅闄嶃備絾鏄?strong>epoll</strong>涓嶅瓨鍦ㄨ繖涓棶棰橈紝瀹冨彧浼氬"媧昏穬"鐨剆ocket榪涜鎿嶄綔---榪欐槸鍥犱負鍦ㄥ唴鏍稿疄鐜頒腑<strong>epoll</strong>鏄牴鎹瘡涓猣d涓婇潰鐨刢allback鍑芥暟瀹炵幇鐨勩傞偅涔堬紝鍙湁"媧昏穬"鐨剆ocket鎵嶄細涓誨姩鐨勫幓璋冪敤 callback鍑芥暟錛屽叾浠杋dle鐘舵乻ocket鍒欎笉浼氾紝鍦ㄨ繖鐐逛笂錛?strong>epoll</strong>瀹炵幇浜嗕竴涓?浼?AIO錛屽洜涓鴻繖鏃跺欐帹鍔ㄥ姏鍦╫s鍐呮牳銆傚湪涓浜?benchmark涓紝濡傛灉鎵鏈夌殑socket鍩烘湰涓婇兘鏄椿璺冪殑---姣斿涓涓珮閫烲AN鐜錛?strong>epoll</strong>騫朵笉姣攕elect/poll鏈変粈涔堟晥鐜囷紝鐩稿弽錛屽鏋滆繃澶氫嬌鐢?strong>epoll</strong>_ctl,鏁堢巼鐩告瘮榪樻湁紼嶅井鐨勪笅闄嶃備絾鏄竴鏃︿嬌鐢╥dle connections妯℃嫙WAN鐜,<strong>epoll</strong>鐨勬晥鐜囧氨榪滃湪select/poll涔嬩笂浜嗐?br /> <3>浣跨敤mmap鍔犻熷唴鏍鎬笌鐢ㄦ埛絀洪棿鐨勬秷鎭紶閫掋?br /> 榪欑偣瀹為檯涓婃秹鍙婂埌<strong>epoll</strong>鐨勫叿浣撳疄鐜頒簡銆傛棤璁烘槸select,poll榪樻槸<strong>epoll</strong>閮介渶瑕佸唴鏍告妸FD娑堟伅閫氱煡緇欑敤鎴風┖闂達紝濡備綍閬垮厤涓嶅繀瑕佺殑鍐呭瓨鎷瘋礉灝卞緢閲嶈錛屽湪榪欑偣涓婏紝<strong>epoll</strong>鏄氳繃鍐呮牳浜庣敤鎴風┖闂磎map鍚屼竴鍧楀唴瀛樺疄鐜扮殑銆傝屽鏋滀綘鎯蟲垜涓鏍蜂粠2.5鍐呮牳灝卞叧娉?strong>epoll</strong>鐨勮瘽錛屼竴瀹氫笉浼氬繕璁版墜宸?mmap榪欎竴姝ョ殑銆?br /> <4>鍐呮牳寰皟<br /> 榪欎竴鐐瑰叾瀹炰笉綆?strong>epoll</strong>鐨勪紭鐐逛簡錛岃屾槸鏁翠釜linux騫沖彴鐨勪紭鐐廣備篃璁鎬綘鍙互鎬鐤憀inux騫沖彴錛屼絾鏄綘鏃犳硶鍥為伩linux騫沖彴璧嬩簣浣犲井璋冨唴鏍哥殑鑳藉姏銆傛瘮濡傦紝鍐呮牳TCP/IP鍗忚鏍堜嬌鐢ㄥ唴瀛樻睜綆$悊sk_buff緇撴瀯錛岄偅涔堝彲浠ュ湪榪愯鏃舵湡鍔ㄦ佽皟鏁磋繖涓唴瀛榩ool(skb_head_pool)鐨勫ぇ灝?-- 閫氳繃echo XXXX>/proc/sys/net/core/hot_list_length瀹屾垚銆傚啀姣斿listen鍑芥暟鐨勭2涓弬鏁?TCP瀹屾垚3嬈℃彙鎵嬬殑鏁版嵁鍖呴槦鍒楅暱搴?錛屼篃鍙互鏍規嵁浣犲鉤鍙板唴瀛樺ぇ灝忓姩鎬佽皟鏁淬傛洿鐢氳嚦鍦ㄤ竴涓暟鎹寘闈㈡暟鐩法澶т絾鍚屾椂姣忎釜鏁版嵁鍖呮湰韜ぇ灝忓嵈寰堝皬鐨勭壒孌婄郴緇熶笂灝濊瘯鏈鏂扮殑NAPI緗戝崱椹卞姩鏋舵瀯銆?br /> 4銆?strong>epoll</strong>鐨勫伐浣滄ā寮?br /> 浠や漢楂樺叴鐨勬槸錛?.6鍐呮牳鐨?strong>epoll</strong>姣斿叾2.5寮鍙戠増鏈殑/dev/<strong>epoll</strong>綆媧佷簡璁稿錛屾墍浠ワ紝澶ч儴鍒嗘儏鍐典笅錛屽己澶х殑涓滆タ寰寰鏄畝鍗曠殑銆傚敮涓鏈夌偣楹葷儲鏄?strong>epoll</strong>鏈?縐嶅伐浣滄柟寮?LT鍜孍T銆?br /> LT(level triggered)鏄己鐪佺殑宸ヤ綔鏂瑰紡錛屽茍涓斿悓鏃舵敮鎸乥lock鍜宯o-block socket.鍦ㄨ繖縐嶅仛娉曚腑錛屽唴鏍稿憡璇変綘涓涓枃浠舵弿榪扮鏄惁灝辯華浜嗭紝鐒跺悗浣犲彲浠ュ榪欎釜灝辯華鐨刦d榪涜IO鎿嶄綔銆傚鏋滀綘涓嶄綔浠諱綍鎿嶄綔錛屽唴鏍歌繕鏄細緇х畫閫氱煡浣犵殑錛屾墍浠ワ紝榪欑妯″紡緙栫▼鍑洪敊璇彲鑳芥ц灝忎竴鐐廣備紶緇熺殑select/poll閮芥槸榪欑妯″瀷鐨勪唬琛紟<br /> ET (edge-triggered)鏄珮閫熷伐浣滄柟寮忥紝鍙敮鎸乶o-block socket銆傚湪榪欑妯″紡涓嬶紝褰撴弿榪扮浠庢湭灝辯華鍙樹負灝辯華鏃訛紝鍐呮牳閫氳繃<strong>epoll</strong>鍛婅瘔浣犮傜劧鍚庡畠浼氬亣璁句綘鐭ラ亾鏂囦歡鎻忚堪絎﹀凡緇忓氨緇紝騫朵笖涓嶄細鍐嶄負閭d釜鏂囦歡鎻忚堪絎﹀彂閫佹洿澶氱殑灝辯華閫氱煡錛岀洿鍒頒綘鍋氫簡鏌愪簺鎿嶄綔瀵艱嚧閭d釜鏂囦歡鎻忚堪絎︿笉鍐嶄負灝辯華鐘舵佷簡(姣斿錛屼綘鍦ㄥ彂閫侊紝鎺ユ敹鎴栬呮帴鏀惰姹傦紝鎴栬呭彂閫佹帴鏀剁殑鏁版嵁灝戜簬涓瀹氶噺鏃跺鑷翠簡涓涓狤WOULDBLOCK 閿欒錛夈備絾鏄娉ㄦ剰錛屽鏋滀竴鐩翠笉瀵硅繖涓猣d浣淚O鎿嶄綔(浠庤屽鑷村畠鍐嶆鍙樻垚鏈氨緇?錛屽唴鏍鎬笉浼氬彂閫佹洿澶氱殑閫氱煡(only once),涓嶈繃鍦═CP鍗忚涓紝ET妯″紡鐨勫姞閫熸晥鐢ㄤ粛闇瑕佹洿澶氱殑benchmark紜銆?br /> <strong>epoll</strong>鍙湁<strong>epoll</strong>_create,<strong>epoll</strong>_ctl,<strong>epoll</strong>_wait 3涓郴緇熻皟鐢紝鍏蜂綋鐢ㄦ硶璇峰弬鑰?a >http://www.xmailserver.org/linux-patches/nio-improve.html</a> 錛屽湪<a >http://www.kegel.com/rn/</a>涔熸湁涓涓畬鏁寸殑渚嬪瓙錛屽ぇ瀹朵竴鐪嬪氨鐭ラ亾濡備綍浣跨敤浜?br /> Leader/follower妯″紡綰跨▼pool瀹炵幇錛屼互鍙婂拰<strong>epoll</strong>鐨勯厤鍚堛?br /> <br /> <strong>5銆?nbsp;<strong>epoll</strong>鐨勪嬌鐢ㄦ柟娉?/strong><br />     棣栧厛閫氳繃create_<strong>epoll</strong>(int maxfds)鏉ュ垱寤轟竴涓?strong>epoll</strong>鐨勫彞鏌勶紝鍏朵腑maxfds涓轟綘<strong>epoll</strong>鎵鏀寔鐨勬渶澶у彞鏌勬暟銆傝繖涓嚱鏁頒細榪斿洖涓涓柊鐨?strong>epoll</strong>鍙ユ焺錛屼箣鍚庣殑鎵鏈夋搷浣滃皢閫氳繃榪欎釜鍙ユ焺鏉ヨ繘琛屾搷浣溿傚湪鐢ㄥ畬涔嬪悗錛岃寰楃敤close()鏉ュ叧闂繖涓垱寤哄嚭鏉ョ殑<strong>epoll</strong>鍙ユ焺銆?涔嬪悗鍦ㄤ綘鐨勭綉緇滀富寰幆閲岄潰錛屾瘡涓甯х殑璋冪敤<strong>epoll</strong>_wait(int epfd, <strong>epoll</strong>_event events, int max events, int timeout)鏉ユ煡璇㈡墍鏈夌殑緗戠粶鎺ュ彛錛岀湅鍝竴涓彲浠ヨ錛屽摢涓涓彲浠ュ啓浜嗐傚熀鏈殑璇硶涓猴細 <br /> nfds = <strong>epoll</strong>_wait(kdpfd, events, maxevents, -1); <br /> 鍏朵腑kdpfd涓虹敤<strong>epoll</strong>_create鍒涘緩涔嬪悗鐨勫彞鏌勶紝events鏄竴涓?strong>epoll</strong>_event*鐨勬寚閽堬紝褰?strong>epoll</strong>_wait榪欎釜鍑芥暟鎿嶄綔鎴愬姛涔嬪悗錛?strong>epoll</strong>_events閲岄潰灝嗗偍瀛樻墍鏈夌殑璇誨啓浜嬩歡銆俶ax_events鏄綋鍓嶉渶瑕佺洃鍚殑鎵鏈塻ocket鍙ユ焺鏁般傛渶鍚庝竴涓猼imeout鏄?strong>epoll</strong>_wait鐨勮秴鏃訛紝涓?鐨勬椂鍊欒〃紺洪┈涓婅繑鍥烇紝涓?1鐨勬椂鍊欒〃紺轟竴鐩寸瓑涓嬪幓錛岀洿鍒版湁浜嬩歡鑼冨洿錛屼負浠繪剰姝f暣鏁扮殑鏃跺欒〃紺虹瓑榪欎箞闀跨殑鏃墮棿錛屽鏋滀竴鐩存病鏈変簨浠訛紝鍒欒寖鍥淬備竴鑸鏋滅綉緇滀富寰幆鏄崟鐙殑綰跨▼鐨勮瘽錛屽彲浠ョ敤-1鏉ョ瓑錛岃繖鏍峰彲浠ヤ繚璇佷竴浜涙晥鐜囷紝濡傛灉鏄拰涓婚昏緫鍦ㄥ悓涓涓嚎紼嬬殑璇濓紝鍒欏彲浠ョ敤0鏉ヤ繚璇佷富寰幆鐨勬晥鐜囥?/p> <p><strong>epoll</strong>_wait鑼冨洿涔嬪悗搴旇鏄竴涓驚鐜紝閬嶅埄鎵鏈夌殑浜嬩歡錛?nbsp;<br /> for(n = 0; n < nfds; ++n) { <br />                 if(events[n].data.fd == listener) { //濡傛灉鏄富socket鐨勪簨浠剁殑璇濓紝鍒欒〃紺烘湁鏂拌繛鎺ヨ繘鍏ヤ簡錛岃繘琛屾柊榪炴帴鐨勫鐞嗐?nbsp;<br />                     client = accept(listener, (struct sockaddr *) &local, <br />                                     &addrlen); <br />                     if(client < 0){ <br />                         perror("accept"); <br />                         continue; <br />                     } <br />                     setnonblocking(client); // 灝嗘柊榪炴帴緗簬闈為樆濉炴ā寮?nbsp;<br />                     ev.events = EPOLLIN | EPOLLET; // 騫朵笖灝嗘柊榪炴帴涔熷姞鍏?strong>EPOLL</strong>鐨勭洃鍚槦鍒椼?nbsp;<br /> 娉ㄦ剰錛岃繖閲岀殑鍙傛暟EPOLLIN | EPOLLET騫舵病鏈夎緗鍐檚ocket鐨勭洃鍚紝濡傛灉鏈夊啓鎿嶄綔鐨勮瘽錛岃繖涓椂鍊?strong>epoll</strong>鏄笉浼氳繑鍥炰簨浠剁殑錛屽鏋滆瀵瑰啓鎿嶄綔涔熺洃鍚殑璇濓紝搴旇鏄疎POLLIN | EPOLLOUT | EPOLLET <br />                     ev.data.fd = client; <br />                     if (<strong>epoll</strong>_ctl(kdpfd, <strong>EPOLL</strong>_CTL_ADD, client, &ev) < 0) { <br /> // 璁劇疆濂絜vent涔嬪悗錛屽皢榪欎釜鏂扮殑event閫氳繃<strong>epoll</strong>_ctl鍔犲叆鍒?strong>epoll</strong>鐨勭洃鍚槦鍒楅噷闈紝榪欓噷鐢?strong>EPOLL</strong>_CTL_ADD鏉ュ姞涓涓柊鐨?strong>epoll</strong>浜嬩歡錛岄氳繃<strong>EPOLL</strong>_CTL_DEL鏉ュ噺灝戜竴涓?strong>epoll</strong>浜嬩歡錛岄氳繃<strong>EPOLL</strong>_CTL_MOD鏉ユ敼鍙樹竴涓簨浠剁殑鐩戝惉鏂瑰紡銆?nbsp;<br />                         fprintf(stderr, "<strong>epoll</strong> set insertion error: fd=%d0, <br />                                 client); <br />                         return -1; <br />                     } <br />                 } <br />                 else // 濡傛灉涓嶆槸涓籹ocket鐨勪簨浠剁殑璇濓紝鍒欎唬琛ㄦ槸涓涓敤鎴穝ocket鐨勪簨浠訛紝鍒欐潵澶勭悊榪欎釜鐢ㄦ埛socket鐨勪簨鎯咃紝姣斿璇磖ead(fd,xxx)涔嬬被鐨勶紝鎴栬呬竴浜涘叾浠栫殑澶勭悊銆?nbsp;<br />                     do_use_fd(events[n].data.fd); <br /> }</p> <p>瀵癸紝<strong>epoll</strong>鐨勬搷浣滃氨榪欎箞綆鍗曪紝鎬誨叡涓嶈繃4涓狝PI錛?strong>epoll</strong>_create, <strong>epoll</strong>_ctl, <strong>epoll</strong>_wait鍜宑lose銆?nbsp;<br /> 濡傛灉鎮ㄥ<strong>epoll</strong>鐨勬晥鐜囪繕涓嶅お浜嗚В錛岃鍙傝冩垜涔嬪墠鍏充簬緗戠粶娓告垙鐨勭綉緇滅紪紼嬬瓑鐩稿叧鐨勬枃绔犮?/p> <p><br /> 浠ュ墠鍏徃鐨勬湇鍔″櫒閮芥槸浣跨敤HTTP榪炴帴錛屼絾鏄繖鏍風殑璇濓紝鍦ㄦ墜鏈虹洰鍓嶇殑緗戠粶鎯呭喌涓嬩笉浣嗘樉寰楅熷害杈冩參錛岃屼笖涓嶇ǔ瀹氥傚洜姝ゅぇ瀹朵竴鑷村悓鎰忕敤SOCKET鏉ヨ繘琛岃繛鎺ャ傝櫧鐒朵嬌鐢⊿OCKET涔嬪悗錛屽浜庣敤鎴風殑璐圭敤鍙兘浼氬鍔?鐢變簬鏄敤浜咰MNET鑰岄潪CMWAP)錛屼絾鏄紝縐夌潃鐢ㄦ埛浣撻獙鑷充笂鐨勫師鍒欙紝鐩鎬俊澶у榪樻槸鑳藉鎺ュ彈鐨?甯屾湜閭d簺鐜╁鏈堟湯鏀跺埌甯愬崟涓嶅悗鑳藉淇濇寔鍏嬪埗...)銆?br /> 榪欐鐨勬湇鍔″櫒璁捐涓紝鏈閲嶈鐨勪竴涓獊鐮達紝鏄嬌鐢ㄤ簡<strong>EPOLL</strong>妯″瀷錛岃櫧鐒跺涔嬩篃鏄竴鐭ュ崐瑙o紝浣嗘槸鏃㈢劧鍦ㄥ悇澶C緗戞父涓凡緇忕粡榪囦簡濡傛涓ラ叿鐨勮冮獙錛岀浉淇′粬涓嶄細璁╂垜浠け鏈涳紝浣跨敤鍚庣殑緇撴灉錛岀‘瀹炰篃鏄〃鐜扮浉褰撲笉閿欍傚湪榪欓噷錛屾垜榪樻槸涓昏澶ц嚧浠嬬粛涓涓嬭繖涓ā鍨嬬殑緇撴瀯銆?br /> 6銆丩inux涓?strong>EPOll</strong>緙栫▼瀹炰緥<br /> <strong>EPOLL</strong>妯″瀷浼間箮鍙湁涓縐嶆牸寮忥紝鎵浠ュぇ瀹跺彧瑕佸弬鑰冩垜涓嬮潰鐨勪唬鐮侊紝灝辮兘澶熷<strong>EPOLL</strong>鏈夋墍浜嗚В浜嗭紝浠g爜鐨勮В閲婇兘宸茬粡鍦ㄦ敞閲婁腑錛?/p> <p>while (TRUE)<br /> {<br /> int nfds = <strong>epoll</strong>_wait (m_<strong>epoll</strong>_fd, m_events, MAX_EVENTS, <strong>EPOLL</strong>_TIME_OUT);//絳夊緟<strong>EPOLL</strong>鏃墮棿鐨勫彂鐢燂紝鐩稿綋浜庣洃鍚紝鑷充簬鐩稿叧鐨勭鍙o紝闇瑕佸湪鍒濆鍖?strong>EPOLL</strong>鐨勬椂鍊欑粦瀹氥?br /> if (nfds <= 0)<br /> continue;<br /> m_bOnTimeChecking = FALSE;<br /> G_CurTime = time(NULL);<br /> for (int i=0; i<br /> {<br /> try<br /> {<br /> if (m_events[i].data.fd == m_listen_http_fd)//濡傛灉鏂扮洃嫻嬪埌涓涓狧TTP鐢ㄦ埛榪炴帴鍒扮粦瀹氱殑HTTP绔彛錛屽緩绔嬫柊鐨勮繛鎺ャ傜敱浜庢垜浠柊閲囩敤浜哠OCKET榪炴帴錛屾墍浠ュ熀鏈病鐢ㄣ?br /> {<br /> OnAcceptHttpEpoll ();<br /> }<br /> else if (m_events[i].data.fd == m_listen_sock_fd)//濡傛灉鏂扮洃嫻嬪埌涓涓猄OCKET鐢ㄦ埛榪炴帴鍒頒簡緇戝畾鐨凷OCKET绔彛錛屽緩绔嬫柊鐨勮繛鎺ャ?br /> {<br /> OnAcceptSockEpoll ();<br /> }<br /> else if (m_events[i].events & EPOLLIN)//濡傛灉鏄凡緇忚繛鎺ョ殑鐢ㄦ埛錛屽茍涓旀敹鍒版暟鎹紝閭d箞榪涜璇誨叆銆?br /> {<br /> OnReadEpoll (i);<br /> }</p> <p>OnWriteEpoll (i);//鏌ョ湅褰撳墠鐨勬椿鍔ㄨ繛鎺ユ槸鍚︽湁闇瑕佸啓鍑虹殑鏁版嵁銆?br /> }<br /> catch (int)<br /> {<br /> PRINTF ("CATCH鎹曡幏閿欒\n");<br /> continue;<br /> }<br /> }<br /> m_bOnTimeChecking = TRUE;<br /> OnTimer ();//榪涜涓浜涘畾鏃剁殑鎿嶄綔錛屼富瑕佸氨鏄垹闄や竴浜涚煭綰跨敤鎴風瓑銆?br /> }<br /> 鍏跺疄<strong>EPOLL</strong>鐨勭簿鍗庯紝涔熷氨鏄笂榪扮殑鍑犳鐭煭鐨勪唬鐮侊紝鐪嬫潵鏃朵唬鐪熺殑涓嶅悓浜嗭紝浠ュ墠濡備綍鎺ュ彈澶ч噺鐢ㄦ埛榪炴帴鐨勯棶棰橈紝鐜板湪鍗磋濡傛杞繪澗鐨勬悶瀹氾紝鐪熸槸璁╀漢涓嶅緱涓嶆劅鍙癸紝瀵瑰摢銆?/p> <p><br /> <strong>鎬葷粨<br /> </strong>Windows<strong>瀹屾垚绔彛</strong>涓嶭inux <strong>epoll</strong>鎶鏈柟妗堟槸榪?涓鉤鍙頒笂瀹炵幇寮傛IO鍜岃璁″紑鍙戜竴涓ぇ瀹歸噺錛屽叿鍙墿灞曟х殑winsock紼嬪簭鎸囨湇鍔$▼搴忕殑寰堝ソ鐨勯夋嫨錛屾湰鏂囧榪?涓妧鏈殑瀹炵幇鍘熺悊鍜屽疄闄呯殑浣跨敤鏂規硶鍋氫簡涓涓緇嗙殑浠嬬粛銆?/p> @import url(http://m.shnenglu.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);<img src ="http://m.shnenglu.com/singohgod/aggbug/152376.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/singohgod/" target="_blank">澶у疂澶╁ぉ瑙?/a> 2011-08-03 17:43 <a href="http://m.shnenglu.com/singohgod/archive/2011/08/03/152376.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>[杞澆]linux涓媋utomake鐢ㄦ硶http://m.shnenglu.com/singohgod/archive/2011/08/01/152224.html澶у疂澶╁ぉ瑙?/dc:creator>澶у疂澶╁ぉ瑙?/author>Mon, 01 Aug 2011 09:40:00 GMThttp://m.shnenglu.com/singohgod/archive/2011/08/01/152224.htmlhttp://m.shnenglu.com/singohgod/comments/152224.htmlhttp://m.shnenglu.com/singohgod/archive/2011/08/01/152224.html#Feedback0http://m.shnenglu.com/singohgod/comments/commentRss/152224.htmlhttp://m.shnenglu.com/singohgod/services/trackbacks/152224.html
浣滀負Linux涓嬬殑紼嬪簭寮鍙戜漢鍛橈紝澶у涓瀹氶兘閬囧埌榪嘙akefile錛岀敤make鍛戒護鏉ョ紪璇戣嚜宸卞啓鐨勭▼搴忕‘瀹炴槸寰堟柟渚褲備竴鑸儏鍐典笅錛屽ぇ瀹墮兘鏄墜宸ュ啓涓涓畝鍗昅akefile錛屽鏋滆鎯沖啓鍑轟竴涓鍚堣嚜鐢辮蔣浠舵儻渚嬬殑Makefile灝變笉閭d箞瀹規槗浜嗐?nbsp;


鍦ㄦ湰鏂囦腑錛屽皢緇欏ぇ瀹朵粙緇嶅浣曚嬌鐢?nbsp;autoconf鍜宎utomake涓や釜宸ュ叿鏉ュ府鍔╂垜浠嚜鍔ㄥ湴鐢熸垚絎﹀悎鑷敱杞歡鎯緥鐨凪akefile錛岃繖鏍峰氨鍙互璞″父瑙佺殑GNU紼嬪簭涓鏍鳳紝鍙浣跨敤“./configure”錛?#8220;make”錛?#8220;make install”灝卞彲浠ユ妸紼嬪簭瀹夎鍒癓inux緋葷粺涓幓浜嗐傝繖灝嗙壒鍒傚悎鎯沖仛寮鏀炬簮浠g爜杞歡鐨勭▼搴忓紑鍙戜漢鍛橈紝鍙堟垨濡傛灉浣犲彧鏄嚜宸卞啓浜涘皬鐨凾oy紼嬪簭錛岄偅涔堣繖涓枃绔犲浣犱篃浼氭湁寰堝ぇ鐨勫府鍔┿?/p>

緙栬瘧涓涓畝鍗曠殑婧愭枃浠秏ain.c,闇瑕佽嚜鍔ㄧ敓鎴愪竴涓猰akefile,浠ヤ笅鏄楠わ細

絎竴姝ワ細

----------

鍦?root/project/main鐩綍涓嬪垱寤轟竴涓枃浠秏ain.c,鍏跺唴瀹瑰涓嬶細

------------------------------------------------

#include <stdio.h>

int main(int argc, char** argv)

{

printf("Hello, Auto Makefile!\n");

return 0;

}

------------------------------------------------

姝ゆ椂鐘舵佸涓嬶細

[root@localhost main]# pwd

/root/project/main

[root@localhost main]# ls

main.c

[root@localhost main]#

絎簩姝ワ細

----------

榪愯 autoscan , 鑷姩鍒涘緩涓や釜鏂囦歡錛?autoscan.log configure.scan

姝ゆ椂鐘舵佸涓嬶細

[root@localhost main]# autoscan

[root@localhost main]# ls

autoscan.log configure.scan main.c

[root@localhost main]#

絎笁姝ワ細

----------

淇敼configure.scan鐨勬枃浠跺悕涓篶onfigure.in

鏌ョ湅configure.in鐨勫唴瀹癸細

------------------------------------------------

# -*- Autoconf -*-

# Process this file with autoconf to produce a configure script.

AC_PREREQ(2.61)

AC_INIT(FULL-PACKAGE-NAME, VERSION, BUG-REPORT-ADDRESS)

AC_CONFIG_SRCDIR([main.c])

AC_CONFIG_HEADER([config.h])

# Checks for programs.

AC_PROG_CC

# Checks for libraries.

# Checks for header files.

# Checks for typedefs, structures, and compiler characteristics.

# Checks for library functions.

AC_OUTPUT

------------------------------------------------

瑙h浠ヤ笂鐨勬枃浠訛細

------------------------------------------------

# -*- Autoconf -*-

# Process this file with autoconf to produce a configure script.

# AC_PREREQ:

# 紜繚浣跨敤鐨勬槸瓚沖鏂扮殑Autoconf鐗堟湰銆傚鏋滅敤浜庡垱寤篶onfigure鐨凙utoconf鐨勭増

# 鏈瘮version 瑕佹棭錛屽氨鍦ㄦ爣鍑嗛敊璇緭鍑烘墦鍗頒竴鏉¢敊璇秷鎭茍涓嶄細鍒涘緩configure銆?/p>

AC_PREREQ(2.61)

#

# 鍒濆鍖?瀹氫箟杞歡鐨勫熀鏈俊鎭?鍖呮嫭璁劇疆鍖呯殑鍏ㄧО,鐗堟湰鍙蜂互鍙婃姤鍛夿UG鏃墮渶瑕佺敤鐨勯偖綆卞湴鍧

#

AC_INIT(FULL-PACKAGE-NAME, VERSION, BUG-REPORT-ADDRESS)

#

# 鐢ㄦ潵渚︽祴鎵鎸囧畾鐨勬簮鐮佹枃浠舵槸鍚﹀瓨鍦紝鏉ョ‘瀹氭簮鐮佺洰褰曠殑鏈夋晥鎬?/p>

#

AC_CONFIG_SRCDIR([main.c])

#

# 鐢ㄤ簬鐢熸垚config.h鏂囦歡錛屼互渚縜utoheader浣跨敤

#

AC_CONFIG_HEADER([config.h])

# Checks for programs.

AC_PROG_CC

# Checks for libraries.

# Checks for header files.

# Checks for typedefs, structures, and compiler characteristics.

# Checks for library functions.

#

# 鍒涘緩杈撳嚭鏂囦歡銆傚湪`configure.in'鐨勬湯灝捐皟鐢ㄦ湰瀹忎竴嬈°?/p>

#

AC_OUTPUT

------------------------------------------------

淇敼鍔ㄤ綔:

1.淇敼AC_INIT閲岄潰鐨勫弬鏁? AC_INIT(main,1.0, pgpxc@163.com)

2.娣誨姞瀹廇M_INIT_AUTOMAKE, 瀹冩槸automake鎵蹇呭鐨勫畯錛屼篃鍚屽墠闈竴鏍鳳紝PACKAGE鏄墍瑕佷駭鐢熻蔣浠跺浠剁殑鍚嶇О錛孷ERSION鏄増鏈紪鍙楓?/p>

3.鍦ˋC_OUTPUT鍚庢坊鍔犺緭鍑烘枃浠禡akefile

淇敼鍚庣殑緇撴灉:

------------------------------------------------

# -*- Autoconf -*-

# Process this file with autoconf to produce a configure script.

AC_PREREQ(2.61)

AC_INIT(main, 1.0, pgpxc@163.com)

AC_CONFIG_SRCDIR([main.c])

AC_CONFIG_HEADER([config.h])

AM_INIT_AUTOMAKE(main,1.0)

# Checks for programs.

AC_PROG_CC

# Checks for libraries.

# Checks for header files.

# Checks for typedefs, structures, and compiler characteristics.

# Checks for library functions.

AC_OUTPUT([Makefile])

------------------------------------------------

絎洓姝?

榪愯 aclocal, 鐢熸垚涓涓?#8220;aclocal.m4”鏂囦歡鍜屼竴涓紦鍐叉枃浠跺すautom4te.cache錛岃鏂囦歡涓昏澶勭悊鏈湴鐨勫畯瀹氫箟銆?/p>

姝ゆ椂鐨勭姸鎬佹槸錛?/p>

[root@localhost main]# aclocal

[root@localhost main]# ls

aclocal.m4 autom4te.cache autoscan.log configure.in configure.in~ main.c

[root@localhost main]#

絎簲姝ワ細

榪愯 autoconf, 鐩殑鏄敓鎴?configure

姝ゆ椂鐨勭姸鎬佹槸錛?/p>

[root@localhost main]# autoconf

[root@localhost main]# ls

aclocal.m4 autoscan.log configure.in main.c

autom4te.cache configure configure.in~

[root@localhost main]#

絎叚姝ワ細

榪愯 autoheader錛屽畠璐熻矗鐢熸垚config.h.in鏂囦歡銆傝宸ュ叿閫氬父浼氫粠“acconfig.h”鏂囦歡涓鍒剁敤鎴烽檮鍔犵殑絎﹀彿瀹氫箟錛屽洜姝ゆ澶勬病鏈夐檮鍔犵鍙峰畾涔夛紝鎵浠ヤ笉闇瑕佸垱寤?#8220;acconfig.h”鏂囦歡銆?/p>

姝ゆ椂鐨勭姸鎬佹槸錛?/p>

[root@localhost main]# autoheader

[root@localhost main]# ls

aclocal.m4 autoscan.log configure configure.in~

autom4te.cache config.h.in configure.in main.c

[root@localhost main]#

絎竷姝ワ細

涓嬮潰鍗沖皢榪愯 automake, 浣嗗湪姝や箣鍓嶅簲璇ュ仛涓涓嬪噯澶囧伐浣?

棣栧厛

鍒涘緩涓涓?nbsp;Makefile.am.榪欎竴姝ユ槸鍒涘緩Makefile寰堥噸瑕佺殑涓姝ワ紝automake瑕佺敤鐨勮剼鏈厤緗枃浠舵槸Makefile.am錛岀敤鎴烽渶瑕佽嚜宸卞垱寤虹浉搴旂殑鏂囦歡銆備箣鍚庯紝automake宸ュ叿杞崲鎴怣akefile.in銆?/p>

榪欎釜Makefile.am鐨勫唴瀹瑰涓嬶細

------------------------------------------------

AUTOMAKE_OPTIONS=foreign

bin_PROGRAMS=main

main_SOURCES=main.c

------------------------------------------------

涓嬮潰瀵硅鑴氭湰鏂囦歡鐨勫搴旈」榪涜瑙i噴銆?/p>

鍏朵腑鐨凙UTOMAKE_OPTIONS涓鴻緗產utomake鐨勯夐」銆傜敱浜嶨NU錛堝湪絎?绔犱腑宸茬粡鏈夋墍浠嬬粛錛夊鑷繁鍙戝竷鐨勮蔣浠舵湁涓ユ牸鐨勮鑼冿紝姣斿蹇呴』闄?甯﹁鍙瘉澹版槑鏂囦歡COPYING絳夛紝鍚﹀垯automake鎵ц鏃朵細鎶ラ敊銆俛utomake鎻愪緵浜嗕笁縐嶈蔣浠剁瓑綰э細foreign銆乬nu鍜実nits錛岃鐢?鎴烽夋嫨閲囩敤錛岄粯璁ょ瓑綰т負gnu銆傚湪鏈緥浣跨敤foreign絳夌駭錛屽畠鍙嫻嬪繀欏葷殑鏂囦歡銆?/p>

bin_PROGRAMS瀹氫箟瑕佷駭鐢熺殑鎵ц鏂囦歡鍚嶃傚鏋滆浜х敓澶氫釜鎵ц鏂囦歡錛屾瘡涓枃浠跺悕鐢ㄧ┖鏍奸殧寮銆?/p>

main_SOURCES瀹氫箟“main”榪欎釜鎵ц紼嬪簭鎵闇瑕佺殑鍘熷鏂囦歡銆傚鏋?#8221;main”榪欎釜紼嬪簭鏄敱澶氫釜鍘熷鏂囦歡鎵浜х敓鐨勶紝鍒欏繀欏繪妸瀹冩墍鐢ㄥ埌鐨勬墍鏈夊師 濮嬫枃浠墮兘鍒楀嚭鏉ワ紝騫剁敤絀烘牸闅斿紑銆備緥濡傦細鑻ョ洰鏍囦綋“main”闇瑕?#8220;main.c”銆?#8220;sunq.c”銆?#8220;main.h”涓変釜渚濊禆鏂囦歡錛屽垯瀹氫箟 main_SOURCES=main.c sunq.c main.h銆傝娉ㄦ剰鐨勬槸錛屽鏋滆瀹氫箟澶氫釜鎵ц鏂囦歡錛屽垯瀵規瘡涓墽琛岀▼搴忛兘瑕佸畾涔夌浉搴旂殑file_SOURCES銆?/p>

鍏舵

浣跨敤automake瀵瑰叾鐢熸垚“configure.in”鏂囦歡錛屽湪榪欓噷浣跨敤閫夐」“—adding-missing”鍙互璁゛utomake鑷姩娣誨姞鏈変竴浜涘繀闇鐨勮剼鏈枃浠躲?/p>

榪愯鍚庣殑鐘舵佹槸錛?/p>

------------------------------------------------

[root@localhost main]# automake --add-missing

configure.in:8: installing `./missing'

configure.in:8: installing `./install-sh'

Makefile.am: installing `./depcomp'

[root@localhost main]# ls

aclocal.m4 config.h.in configure.in~ main.c Makefile.in

autom4te.cache configure depcomp Makefile.am missing

autoscan.log configure.in install-sh Makefile.am~

[root@localhost main]#

------------------------------------------------

絎叓姝?/p>

榪愯configure錛屽湪榪欎竴姝ヤ腑錛岄氳繃榪愯鑷姩閰嶇疆璁劇疆鏂囦歡configure錛屾妸Makefile.in鍙樻垚浜嗘渶緇堢殑Makefile銆?/p>

榪愯鐨勭粨鏋滃涓嬶細

------------------------------------------------

[root@localhost main]# ./configure

checking for a BSD-compatible install... /usr/bin/install -c

checking whether build environment is sane... yes

checking for a thread-safe mkdir -p... /bin/mkdir -p

checking for gawk... gawk

checking whether make sets $(MAKE)... yes

checking for gcc... gcc

checking for C compiler default output file name... a.out

checking whether the C compiler works... yes

checking whether we are cross compiling... no

checking for suffix of executables...

checking for suffix of object files... o

checking whether we are using the GNU C compiler... yes

checking whether gcc accepts -g... yes

checking for gcc option to accept ISO C89... none needed

checking for style of include used by make... GNU

checking dependency style of gcc... gcc3

configure: creating ./config.status

config.status: creating Makefile

config.status: creating config.h

config.status: executing depfiles commands

[root@localhost main]# ls

aclocal.m4 config.h.in configure.in main.c Makefile.in

autom4te.cache config.log configure.in~ Makefile missing

autoscan.log config.status depcomp Makefile.am stamp-h1

config.h configure install-sh Makefile.am~

[root@localhost main]#

------------------------------------------------

絎節姝?/p>

榪愯 make錛屽閰嶇疆鏂囦歡Makefile榪涜嫻嬭瘯涓涓?/p>

姝ゆ椂鐨勭姸鎬佸涓?

------------------------------------------------

[root@localhost main]# make

cd . && /bin/sh /root/project/main/missing --run aclocal-1.10

cd . && /bin/sh /root/project/main/missing --run automake-1.10 --foreign

cd . && /bin/sh /root/project/main/missing --run autoconf

/bin/sh ./config.status --recheck

running CONFIG_SHELL=/bin/sh /bin/sh ./configure --no-create --no-recursion

checking for a BSD-compatible install... /usr/bin/install -c

checking whether build environment is sane... yes

checking for a thread-safe mkdir -p... /bin/mkdir -p

checking for gawk... gawk

checking whether make sets $(MAKE)... yes

checking for gcc... gcc

checking for C compiler default output file name... a.out

checking whether the C compiler works... yes

checking whether we are cross compiling... no

checking for suffix of executables...

checking for suffix of object files... o

checking whether we are using the GNU C compiler... yes

checking whether gcc accepts -g... yes

checking for gcc option to accept ISO C89... none needed

checking for style of include used by make... GNU

checking dependency style of gcc... gcc3

configure: creating ./config.status

/bin/sh ./config.status

config.status: creating Makefile

config.status: creating config.h

config.status: config.h is unchanged

config.status: executing depfiles commands

cd . && /bin/sh /root/project/main/missing --run autoheader

rm -f stamp-h1

touch config.h.in

make all-am

make[1]: Entering directory `/root/project/main'

gcc -DHAVE_CONFIG_H -I. -g -O2 -MT main.o -MD -MP -MF .deps/main.Tpo -c -o main.o main.c

mv -f .deps/main.Tpo .deps/main.Po

gcc -g -O2 -o main main.o

cd . && /bin/sh ./config.status config.h

config.status: creating config.h

config.status: config.h is unchanged

make[1]: Leaving directory `/root/project/main'

[root@localhost main]# ls

aclocal.m4 autoscan.log config.h.in config.status configure.in depcomp main main.o Makefile.am Makefile.in stamp-h1

autom4te.cache config.h config.log configure configure.in~ install-sh main.c Makefile Makefile.am~ missing

[root@localhost main]#

------------------------------------------------

絎崄姝?/p>

榪愯鐢熸垚鐨勬枃浠?main錛?/p>

------------------------------------------------

[root@localhost main]# ./main

Hello, Auto Makefile!

[root@localhost main]#

------------------------------------------------

鎴戠敤鐨勬槸ubuntu

浠ヤ笂灝辨槸鍏ㄦ枃浜?浣嗘湁涓澶勮鏀?鐢╝clocal

鍏ㄦ姤鏈変竴涓猰4鏂囦歡鏈夐敊.鎵懼埌鎶ラ敊鐨勯偅涓琛?鎶婂彉閲忓姞涓腑鎷彿灝卞彲浠ヤ簡

@import url(http://m.shnenglu.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);

]]>
[杞澆]Linux鏈嶅姟鍣ㄧ┖闂插悗鑷姩鏂紑鐨勭浉鍏寵緗?/title><link>http://m.shnenglu.com/singohgod/archive/2011/07/14/150991.html</link><dc:creator>澶у疂澶╁ぉ瑙?/dc:creator><author>澶у疂澶╁ぉ瑙?/author><pubDate>Thu, 14 Jul 2011 08:46:00 GMT</pubDate><guid>http://m.shnenglu.com/singohgod/archive/2011/07/14/150991.html</guid><wfw:comment>http://m.shnenglu.com/singohgod/comments/150991.html</wfw:comment><comments>http://m.shnenglu.com/singohgod/archive/2011/07/14/150991.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/singohgod/comments/commentRss/150991.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/singohgod/services/trackbacks/150991.html</trackback:ping><description><![CDATA[ 鎬庢牱璁╂湇鍔″櫒鍜屼竴瀹氭椂闂存病鏈変換浣曟搷浣滅殑緇堢鑷姩鏂紑榪炴帴錛?# vi /etc/profile 澧炲姞錛?TMOUT=1800 榪欐牱30鍒嗛挓娌℃搷浣滃氨鑷姩LOGOUT<br /> <br /> 鏈榪戝彂鐜?SecureCRT榪炴帴鍒皊shd鏈嶅姟鍣ㄥ悗鍦ㄤ竴孌墊椂闂村唴涓嶆搷浣滃氨鑰佷細鑷姩鏂紑錛屽湪緗戜笂鏌ヤ簡涓涓嬶紝鍙戠幇鍘熸潵鏄洜涓哄鎴風涓庢湇鍔″櫒涔嬮棿瀛樺湪闃茬伀澧欙紝瀹夊叏璧瘋錛屽湪瓚呰繃鐗瑰畾鐨勬椂闂村悗灝變細鎶婄┖闂茶繛鎺ユ柇寮銆?瑙e喅鏂規硶錛?鏃㈢劧浼氭柇寮瓚呮椂鐨勭┖闂茶繛鎺ワ紝閭d箞鎴戜滑灝卞簲璇ヨ瀹㈡埛绔笌鏈嶅姟鍣ㄤ箣闂寸殑榪炴帴“蹇?#8221;璧鋒潵錛屾柟娉曟湁涓や釜: <br /> 浠庢湇鍔″櫒鏂歸潰鍏ユ墜錛?淇敼/etc/ssh/sshd_config閰嶇疆鏂囦歡 ClientAliveInterval 300錛堥粯璁や負0錛?榪欎釜鍙傛暟鐨勬槸鎰忔濇槸姣?鍒嗛挓錛屾湇鍔″櫒鍚戝鎴風鍙戜竴涓秷鎭紝鐢ㄤ簬淇濇寔榪炴帴 service sshd reload 鐢熸晥 <br /> 浠庡鎴風鍏ユ墜錛?涓婇潰鏄厤緗渶瑕佹湇鍔″櫒鏉冮檺錛屽鏋滄病鏈夋湇鍔″櫒鏉冮檺鍒欏彲浠ヤ嬌鐢ㄨ繖涓柟娉曪紝鍏舵濇兂鏄細瀹㈡埛绔悜鏈嶅姟鍣ㄥ彂涓涓秷鎭紝鐢ㄤ簬淇濇寔榪炴帴 secureCRT鍦ㄩ夐」 緇堢 鍙嶇┖闂?涓緗瘡闅斿灝戠鍙戦佷竴涓瓧絎︿覆錛屾垨鑰呮槸NO-OP鍗忚鍖?putty錛歱utty -> Connection -> Seconds between keepalives ( 0 to turn off ), 榛樿涓?, 鏀逛負300. @import url(http://m.shnenglu.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);<img src ="http://m.shnenglu.com/singohgod/aggbug/150991.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/singohgod/" target="_blank">澶у疂澶╁ぉ瑙?/a> 2011-07-14 16:46 <a href="http://m.shnenglu.com/singohgod/archive/2011/07/14/150991.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>[鍘熷垱]linux緙哄皯搴撴椂娣誨姞鏌ユ壘璺緞http://m.shnenglu.com/singohgod/archive/2011/07/10/150604.html澶у疂澶╁ぉ瑙?/dc:creator>澶у疂澶╁ぉ瑙?/author>Sun, 10 Jul 2011 11:02:00 GMThttp://m.shnenglu.com/singohgod/archive/2011/07/10/150604.htmlhttp://m.shnenglu.com/singohgod/comments/150604.htmlhttp://m.shnenglu.com/singohgod/archive/2011/07/10/150604.html#Feedback0http://m.shnenglu.com/singohgod/comments/commentRss/150604.htmlhttp://m.shnenglu.com/singohgod/services/trackbacks/150604.html鎵撳紑/etc/ld.so.conf鏂囦歡鍦ㄥ叾鍚庨潰娣誨姞閾炬帴鏌ユ壘璺緞錛?usr/local/lib錛堟垨鍏朵粬搴撴墍鍦ㄨ礬寰勶級錛屼負浜嗗惎鐢ㄨ閰嶇疆鍦ㄧ粓绔緭鍏dconfig銆?br />
浠婂ぉ瀹夎codeblocks灝遍亣鍒頒簡榪欎釜闂錛屽簱鍦?usr/lib涓嬶紝涓嶅姞涓婅繖涓厤緗緇堟彁紺猴細
./codeblocks: error while loading shared libraries: libcodeblocks.so.0: cannot open shared object file: No such file or directory

鍔犱笂鍚庨棶棰樿В鍐籌紒~

@import url(http://m.shnenglu.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);

]]>
[杞澆]Flex 4閲岀殑fx銆乵x浠ュ強s鍛藉悕絀洪棿http://m.shnenglu.com/singohgod/archive/2011/06/27/149595.html澶у疂澶╁ぉ瑙?/dc:creator>澶у疂澶╁ぉ瑙?/author>Mon, 27 Jun 2011 10:09:00 GMThttp://m.shnenglu.com/singohgod/archive/2011/06/27/149595.htmlhttp://m.shnenglu.com/singohgod/comments/149595.htmlhttp://m.shnenglu.com/singohgod/archive/2011/06/27/149595.html#Feedback1http://m.shnenglu.com/singohgod/comments/commentRss/149595.htmlhttp://m.shnenglu.com/singohgod/services/trackbacks/149595.htmlFlex 4甯︾粰鎴戜滑鐨勶紝鏄叏鏂扮殑鍛藉悕絀洪棿銆備簡瑙h繖浜涘懡鍚嶇┖闂村繀瀹氭槸涓浠跺ソ浜嬫儏銆侳lex 4鏈変笁涓潪甯擱噸瑕佺殑鍛藉悕絀洪棿錛屽垎鍒槸錛?/p>

xmlns:fx=”http://ns.adobe.com/mxml/2009″
xmlns:mx=”library://ns.adobe.com/flex/halo”
xmlns:s=”library://ns.adobe.com/flex/spark”


1銆亁mlns:fx=”http://ns.adobe.com/mxml/2009″
        fx鍛藉悕絀洪棿涓嬪寘鍚獳ctionScript欏剁駭鍏冪礌鍜屽唴寤哄埌MXML緙栬瘧鍣ㄩ噷鐨勬爣絳俱?/p>

        鍓嶈匒ctionScript欏剁駭鍏冪礌灝辨槸鎸?Object銆丯umber銆丅oolean浠ュ強Array瀵硅薄絳夌瓑錛屽湪銆夾dobe Flex 4 Beta Language Reference銆嬬殑欏剁駭鍖咃紙Top Level錛夐噷鍙互鏌ョ湅瀹屾暣鐨勯《綰у厓绱犮傚悗鑰呭唴寤哄埌MXML緙栬瘧鍣ㄩ噷鐨勬爣絳懼寘鎷?lt;fx:Script>銆?lt;fx:Declarations>鍜?lt;fx:Style>絳夌瓑錛屽湪銆夾dobe Flex 4 Beta Language Reference銆嬮檮褰曪紙Appendixes錛夐噷鐨?#8220;MXML Only Tags”鍙互鏌ョ湅瀹屾暣鐨勭紪璇戝櫒鍏冪礌銆傚煎緱娉ㄦ剰鐨勬槸錛岃繖涓懡鍚嶇┖闂村茍涓嶅寘鍚?Halo 鍜?Spark 緇勪歡錛圚alo鏄互鍓嶇増鏈殑緇勪歡搴擄紝鑰孲park鏄疐lex 4鏂板嚭鐨勭粍浠跺簱錛夈傚湪Flash Builder瀹夎鐩綍涓嬪彲浠ユ壘鍒?#8220;mxml-2009-manifest.xml”鏂囦歡錛堜緥濡傛垜鐨勭數鑴戞槸C:\Program Files\Adobe\Flash Builder Beta\sdks\4.0.0\frameworks\mxml-2009-manifest.xml錛夛紝榪欎釜xml鏂囦歡鎻忚堪浜嗗畬鏁寸殑 ActionScript欏剁駭綾匯備笉榪囦綘鍙互娉ㄦ剰鍒幫紝瀹冨茍娌℃湁鍖呭惈MXML緙栬瘧鍣ㄦ爣絳撅紝閭f槸鍥犱負榪欎簺鏍囩鏄唴寤哄埌MXML緙栬瘧鍣ㄣ?/p>


2銆亁mlns:mx=”library://ns.adobe.com/flex/halo”
        mx鍛藉悕絀洪棿鍖呭惈鐫鏀懼湪 mx.* 鍖呴噷閭d簺緇勪歡錛孎lex鍥捐〃銆丗lex鏁版嵁鍙鍖栫粍浠剁瓑絳夈傚Flex 3寰堢啛鎮夌殑璇濓紝mx鍖呴噷鐨勭粍浠朵綘涔熶笉闄岀敓浜嗐傚湪Flex 4 SDK鐨勫畨瑁呯洰褰曚笅鍙互鎵懼埌“halo-manifest.xml”鏂囦歡錛堜緥濡傛垜鐨勭數鑴戞槸C:\Program Files\Adobe\Flash Builder Beta\sdks\4.0.0\frameworks\halo-manifest.xml錛夛紝榪欎釜XML鏂囦歡鍒楀嚭浜嗘墍鏈夌粍浠朵簡銆?/p>


3銆亁mlns:s=”library://ns.adobe.com/flex/spark”
        s鍛藉悕絀洪棿鍙湡鏄柊椴滀簨浜嗭紝spark.* 鍖呴噷鐨勭粍浠墮兘鍦ㄨ繖涓懡鍚嶇┖闂撮噷錛屼笉鍙猻park鍖咃紝flashx.*鍖呯殑text framework綾諱篃鍦ㄨ繖涓懡鍚嶇┖闂撮噷銆傝繖涓懡鍚嶇┖闂村寘鍚笉灝慠PC綾伙紝渚嬪 WebService銆丠TTPService鍜孯emoteObject緇勪歡錛岃繖浜涚粍浠跺悓鏃朵篃鍦╩x鍛藉悕絀洪棿涓嬶紝涔熷氨鏄錛屽垱寤鴻繖浜涚粍浠舵椂錛屼綘涓嶄絾鍙互浣跨敤“S:”鍓嶇紑錛屼篃鍙互浣跨敤“mx:”鍓嶇紑銆傚叾瀹炰笉鍙繖浜汻PC緇勪歡鍏辯敤涓や釜鍛藉悕絀洪棿錛屽儚graphics銆乪ffect鍜宻tate綾諱篃鏄叡鐢?s 鍜?mx 鍛藉悕絀洪棿鐨勩傚湪Flex 4 SDK瀹夎鐩綍涓嬫墦寮spark-manifest.xml鏂囦歡鏉ョ湅鐪嬪畬鏁寸殑spark緇勪歡鍚с?/p>

 

 



]]>
[杞澆]Flex鏄拫鍥炰簨http://m.shnenglu.com/singohgod/archive/2011/06/27/149591.html澶у疂澶╁ぉ瑙?/dc:creator>澶у疂澶╁ぉ瑙?/author>Mon, 27 Jun 2011 09:58:00 GMThttp://m.shnenglu.com/singohgod/archive/2011/06/27/149591.htmlhttp://m.shnenglu.com/singohgod/comments/149591.htmlhttp://m.shnenglu.com/singohgod/archive/2011/06/27/149591.html#Feedback0http://m.shnenglu.com/singohgod/comments/commentRss/149591.htmlhttp://m.shnenglu.com/singohgod/services/trackbacks/149591.htmlFlex鏄拫鍥炰簨涔嬩竴 闆咰S鍜孊S涔嬪ぇ鎴愮殑RIA

鐢ㄤ簡涓騫村Flex錛屾劅瑙﹀澶氥傚伓灝旀湁鍚岃鐨勬湅鍙嬮棶鎴戝暐鏄疐lex錛岃瀹炶瘽錛屼竴鏃跺崐浼氬効鎴戣繕鐪熻涓嶆竻妤氥傚挨鍏舵槸瀵逛簬涓涓粠鏈帴瑙﹁繃Flex鐨勬湅鍙嬶紝鎯寵鐢辨祬鍏ユ繁鍦板彧鐢ㄥ槾宸翠笉鐢ㄧ數鑴戠粰浠栬鏄庣櫧錛岃繖紜疄闅句負涓涓暣澶╁彧璺熸満鍣ㄦ墦浜ら亾鐨勭▼搴忓憳浜嗐傚悗鏉ユ垜鎯充簡涓涓姙娉曪紝鎴戣浣犵煡閬撳紑蹇冨啘鍦哄惂錛岄偅灝辨槸鎷縁lex鍋氱殑銆傝繖涓嬪瓙寰堝浜烘湁鍏磋叮浜嗭紝鍛靛懙錛屽鏋滀綘涔熸湁鍏磋叮錛岃緇х畫寰涓嬬湅銆傚け璦鏈療涔嬪錛屾榪庢媿鐮栥?/p>

 

涓鑸潵璇達紝涓欏規妧鏈殑浜х敓閮芥槸涓轟簡瑙e喅涓氱晫鐨勯噸澶ч毦棰樿屽嚭鐜扮殑銆傞偅涔堣鍒癋lex鎴戜滑灝變笉寰椾笉鍏堣涓涓婻IA銆俁IA榪欎釜姒傚康鍏跺疄鏃╁氨鍑虹幇浜嗭紝鎴戞渶鍒濇槸07騫村湪銆婄▼搴忓憳銆嬫潅蹇椾笂鍏充簬Ajax鎶鏈殑浠嬬粛鏃剁湅鍒扮殑銆傚埌浜?8騫達紝浼撮殢鐫緗戠粶瑙嗛鐨勯閫熷彂灞曪紝RIA搴旂敤宸茬粡鎼炲緱鏈夊0鏈夎壊鐑伀鏈濆ぉ浜嗭紝鍏跺疄緲昏瘧榪囨潵灝辨槸涓瘜瀹㈡埛绔紙Rich Internet Application錛夛紝鐩歌緝浜嶣S鐨勭槮瀹㈡埛绔紝涔熷彲浠ョО涔嬩負鑳栧鎴風銆傚綋鐒跺鏋滀綘宸茬粡琚繖浜涘悕璇嶆蹇電啅寰楃劍澶寸儌棰濓紝璇瘋繛璺沖洓孌碉紙灝忛粦濂藉績鎻愮ず錛屾湰閮ㄥ垎浠呬綑鍥涙銆傘傘傦級銆?/p>

 

RIA綆鍗曠殑璇達紝灝辨槸CS+BS鐨勫紑鍙戦儴緗叉ā寮忋侰S鍜孊S澶у閮藉緢鐔熸倝錛孋S鐨勫叏鎷兼槸Client/Server錛屽畠鐨勪紭鐐瑰湪浜庡熷姪灞鍩熺綉鐨勪俊鎭畨鍏ㄥ拰甯﹀浼樺娍錛屽厖鍒嗗埄鐢ㄥ鎴鋒満鍣ㄧ殑榪愮畻鑳藉姏浠庤岄檷浣庢湇鍔″櫒鍘嬪姏錛岀己鐐瑰氨鏄畨瑁呴儴緗叉洿鏂伴夯鐑︼紝姣斿鑰佹澘璁╂垜璺戝埌涓鍗冨叕閲屽鐨勫鎴烽偅瀹夎涓鍗冨彴鏈哄櫒鐨勫鎴風錛岃繃鍑犲ぉ鎴戝洖鏉ヤ簡錛岃佹澘璇撮偅杈規湁鍑犲彴鏈哄櫒榪愯鏈夐棶棰橈紝浣犲幓緇存姢涓涓媬錛佽繃鍑犱釜鏈堬紝鑰佹澘璇翠綘鍘繪妸閭d竴鍗冨彴鏈哄櫒鍏ㄩ儴鍗囩駭涓閬嶏紝浠栦滑鑷繁涓嶄細瑁呫傘傘傚懙鍛碉紝榪欎簺鐥涜嫤鎴戝綋鐒朵笉鏇劇粡鍘嗭紝鎴戞潨鎾扮殑銆?/p>

 

閭d箞鍦?998騫達紝浜掕仈緗戦璧蜂簯娑岀殑鏃跺欙紝BS錛孊rowser/Server錛岄㈡椂鑰岀敓銆侭S鍏呭垎鍒╃敤浜掕仈緗戠殑浼樺娍錛岃В鍐充簡CS瀹夎閮ㄧ講鏇存柊鐨勪竴澶ч毦棰樸傞氳繃鎶婁笟鍔¢昏緫澶勭悊鏀懼湪鏈嶅姟鍣ㄧ錛岀劧鍚庤В鏋愪負HTML錛屽埄鐢℉TTP鍗忚浼犺緭鍒板鎴風殑嫻忚鍣ㄤ笂灝變竾浜嬪ぇ鍚夈傜湅璧鋒潵寰堢編錛屽叾瀹炲共榪囧氨鐭ラ亾涔熷緢鐥涜嫤銆傚摢鍎跨棝鍛紝鐥涚殑褰撶劧鏄垜浠繖浜涘紑鍙戣呫傚畨瑁呴儴緗叉洿鏂板掓槸鐪佷簨鍎夸簡錛岃涓狪E錛岀粰涓綉鍧灝辮兘璁╁鎴風櫥褰曚簡銆備絾鏄紝鍩轟簬HTML+JavaScript鐨勬妧鏈浜哄緢宕╂簝銆侸avaScript鎴戝ソ涔呬笉鐢ㄤ簡錛屽湪浠ュ墠姣曚笟瀹炰範鐨勬椂鍊欙紝鎰熻寮鍙戝拰璋冭瘯閮戒笉鏂逛究錛岃屼笖榪橀潰涓寸潃涓嶅悓嫻忚鍣ㄤ笉鍏煎鐨勫櫓姊︼紙鎹鐜板湪涓婅堪闂闅忕潃Ajax鐨勯琛屾湁鎵鏀瑰杽錛屾垜涓嶅お浜嗚В錛夈傚彟澶栵紝BS榪樻湁涓浜涙綔鍦ㄧ殑緙虹偣銆傛瘮濡傦紝瀹㈡埛绔綋楠岀畝鍗曪紝涓嶆槗寮鍙戜赴瀵岀殑鏁堟灉鏉ュ睍紺烘暟鎹紙榪欏拰褰撴椂鐨勭綉緇滃甫瀹戒篃鏈夊叧緋伙級錛涘繀欏昏仈緗戞墠鑳借繍琛岋紝淇℃伅瀹夊叏鏃犳硶淇濋殰錛涘簲鐢ㄧ▼搴忛渶瑕侀氳繃鍏朵粬鎶鏈緟鍔╂墠鑳芥搷浣滃鎴風璧勬簮錛涙湇鍔″櫒璐熻澆榪囬珮鑰屽鎴鋒満榪愮畻鑳藉姏鏈厖鍒嗕嬌鐢ㄧ瓑銆?/p>

 

緇煎悎鏉ヨ錛孊S浠嶇劧鏄竴涓笉閿欑殑瑙e喅鏂規錛屽畠鐨刉eb搴旂敤紼嬪簭鍜孋S鐨勬闈㈠簲鐢ㄧ▼搴忔浘涓搴︿簩鍒嗗ぉ涓嬶紝鍚勯椋庨獨鏁板崄騫淬備粠瑙h﹁搴︽潵鐪嬶紝CS浠ユ暟鎹簱鐨勬柟寮忔妸鏁版嵁浠庣▼搴忎腑鍒嗙錛孊S浠ユ祻瑙堝櫒欏甸潰鐨勬柟寮忔妸鐣岄潰鍜岄昏緫鍐嶆鍒嗙錛岀劧鑰岀浜屾鍒嗙鏄笉褰誨簳鐨勩傝〃闈笂鍙槸浠g爜緇撴瀯鐨勫垎紱伙紝浠庡疄璐ㄤ笂鐪嬭〃鐜板眰浠嶇劧鏄昏緫灞傜殑闄勫焊錛屽墠鍙癠I瀹屽叏鍜屽悗鍙板疄鐜版妧鏈粦姝伙紙鎶婂凡鏈夐」鐩悗鍙頒粠C#鎹㈡垚JAVA鏄笉鍙兘鐨勩傘傘傦級涓轟簡瑙e喅榪欎釜闂錛孯IA鍑虹幇浜嗭紙欏轟究鎼炲畾浜嗕竴浜涘叾浠栭棶棰橈紝姣斿欏甸潰寮傛鍒鋒柊錛屽墠鍙癠I涓嶅涓板瘜絳夌瓑錛夛紝RIA鍩烘湰瀹炵幇浜嗕笉渚濊禆浜庣壒瀹氬悗鍙版妧鏈紝鑳戒笌澶氱鏈嶅姟绔惌閰嶄嬌鐢ㄣ?/p>

 

鍦?002騫達紝MacroMedia鍏徃錛堢畝縐癕M錛?5騫磋Adobe鏀惰喘錛夐鍏堝湪Flash Player6涓紩鍏ヤ簡RIA姒傚康銆?004騫達紝MM姝e紡鍙戝竷Flex1.0錛堟睏錛岀粓浜庤鍒癋lex浜嗭級錛岄殢鐫Ajax鐨勭伀鐖嗭紝RIA寮濮嬪彈鍒板箍娉涘叧娉ㄣ俁IA涓昏鏈変袱涓柟闈㈢殑鍚箟錛屼竴鏄敤鎴風晫闈㈢殑涓板瘜鍗沖瘜瀹㈡埛绔紝浜屾槸鏁版嵁妯″瀷鐨勬櫤鑳斤紝鏈嶅姟鍣ㄥ凡緇忓彉鎴愪簡鏀寔瀹㈡埛绔甯歌繍琛岀殑鏁版嵁鏈嶅姟錛屽茍鎻愪緵浜嗗紓姝ユ暟鎹紶杈撳拰鑴辨満緙撳瓨鏈哄埗絳夊鏉傜殑鏁版嵁澶勭悊鑳藉姏銆傚墠闈㈡彁鍒幫紝RIA鏈川涓婂氨鏄疌S+BS錛屽畠鎯抽泦澶ф垚錛屾兂鎼炴葷粨錛屾兂緇堢粨CS鍜孊S浜屽垎澶╀笅鐨勫眬闈€傝嫻呮樉鐐瑰氨鏄紝濡傛灉浠ュ墠鐨凜S紼嬪簭鐜板湪鑳藉湪緗戠粶涓婅繍琛岋紝騫朵笖淇濇寔浜嗗師鏉ョ殑鍔熻兘鍜岀壒寰侊紝閭d箞榪欏氨鏄竴涓猂IA銆傚叧浜嶳IA鐨勮緇嗕粙緇岹OOGLE涓婁竴鎼滀竴澶ф妸錛屽湪姝ゅ氨涓嶇戶緇綔璇︾粏灞曞紑銆傚洖鍒板綋涓嬶紝RIA鍚勭鎶鏈竴鐣嫾鏉錛岀幇鍦ㄥ箍涓轟漢鐭ョ殑鍙墿涓嬪洓涓狽B灝忎紮錛欰jax銆丗lex銆丼ilverLight銆丣avaFx銆傚湪鏈枃絎簩閮ㄥ垎涓紝鎴戝皢綆瑕佷粙緇嶄竴涓婩lex錛堣矊浼艱繘搴︽湁鐐瑰効鎱紝澶氳阿鏀寔銆傘傘傦級

 

 

Flex鏄拫鍥炰簨涔嬩簩 鍓嶄笘浠婄敓 

 

鍏堣涓涓婩lash Player錛堢畝縐癋P錛夈傜粡甯鎬笂緗戠殑鏈嬪弸涓瀹氶亣鍒拌繃Flash Player鐗堟湰鍗囩駭鐨勬彁紺哄惂錛岃繖涓滆タ鍏跺疄灝辨槸嫻忚鍣ㄦ彃浠訛紝鎹宸茬粡鏈変簡98%鐨勫畨瑁呮櫘鍙婄巼錛屾病鍔炴硶錛岃皝璁╁挶浠繖涔堢埍鐪嬭棰戝憿錛團P鍏蜂綋浠嬬粛璇瘋http://baike.baidu.com/view/1585492.htm錛夈侳lex鐢熸垚鐨勯〉闈富瑕佹槸閫氳繃Html鍖呰涓涓嬬敓鎴愮殑swf鏂囦歡錛屽拰Flash鐢熸垚鐨剆wf涓鏍鳳紝瀹冧篃闈燜P鎵嶈兘瀹岀編榪愯錛岃繖鏈夌偣綾諱技JVM铏氭嫙鏈哄拰.NET FRAMEWORK錛團P閲屽唴宓屼簡AVM铏氭嫙鏈猴級銆侳P鍙堝垎璋冭瘯鐗堝拰浜у搧鐗堬紝鎬諱綋鏉ヨ錛屽挶浠彧綆$敤FP鎻愪緵鐨凙PI錛屼互鍙婂強鏃跺叧娉ㄦ渶鏂扮増鏈殑鍔熻兘錛屽叾浣欎笉浼氳繃澶氭帴瑙︼紙鎴戝FP10鍏充簬3D鏂歸潰鐨勬敮鎸佸緢鎰熷叴瓚o紝涓嶈繃璨屼技鍏舵敮鎸佹晥鏋滀笉澶悊鎯籌級銆?/p>

 

鍐嶈涓涓婩lash鐨勫巻鍙層傚湪1996騫?灝忚蔣浠跺叕鍙窮utureWave Software涓轟簡緇橬etscape寮鍙戜竴涓叏鏂扮殑緗戦〉嫻忚鎻掍歡錛屽垱寤轟簡鍚嶄負Future Splash Animator鐨勫姩鎬佸皬紼嬪簭錛岃浜у搧鍩轟簬Java錛屾槸鐢變竴涓О涓篠martSketch鐨勪駭鍝佹紨鍖栬屾潵錛岃繖灝辨槸Flash鐨勮佺浜嗐傚叿鏈夎鍒烘剰鍛崇殑鏄紝榪欏FutureWave鐨勫叕鍙告湰鏉ユ槸鎵撶畻鎶婅繖欏規妧鏈崠緇橝dobe鐨勶紝浣嗗湪閭d釜鏃跺橝dobe鏍規湰涓嶇潿瀹冦傝孧acromedia錛堢畝縐癕M錛夊嵈寰堟湁鍏磋叮錛屽氨榪欐牱鍦?996騫?1鏈?MM鍦ㄦ嫢鏈変簡FutureWave榪欏鍏徃鐨勬妧鏈悗錛屾妸FutureSplash閲嶆柊鍛藉悕涓篎lash Player 1.0銆傚湪闅忓悗鐨勮澶氬勾闂達紝Flash琚墦鍖呬負Studio濂椾歡鐨勪竴閮ㄥ垎錛屽茍涓庡叾浠朣tudio浜у搧錛堝Dreamweaver鍜孎ireworks錛変竴璧峰彂甯冿紝涓栦漢縐扮綉欏典笁鍓戝銆傘傘備笁鍓戝妯鏃犳晫錛屽埌浜?5騫?鏈?8鏃ヨ繖澶╋紝ADOBE瀹炲湪鐪嬩笉涓嬪幓浜嗭紝闃旂話鍑烘墜錛屽張浠?4浜跨編鍏冨ぉ浠鋒敹璐璏M銆傘傘侫DOBE澶у彅浼拌寰堝悗鎮斿綋騫存病鏀惰喘Future Splash錛屾悶鍒扮幇鍦紝琚玀M緇欏仛澶т簡錛團lash鍏蜂綋鍘嗗彶浠嬬粛鍙傝http://flash.9ria.com/viewthread.php?tid=13194鍜?a >http://space.flash8.net/space/?625743/viewspace-350122錛?/p>

 

濡傚悓浠婂勾4鏈圤racle鏀惰喘Sun涓鏍鳳紝MM瀚佸叆ADOBE璞棬錛屽湪褰撴椂鐨勪笟鐣屼篃鏄竴鐗囧摋鐒剁偢闆楓傝澶歁M鐨勫繝瀹炵矇涓濊寰楋紝閭d笁鍓戝灝辨槸琚獳DOBE澶у彅鎷涘畨浜嗗晩錛屼緷鎹叾鏀惰喘浜у搧鐨勪竴璐尌鐞愭伓琛岋紝榪欏嚑浣嶅墤渚犱及璁″緢蹇氨浼氳涓嶅0涓嶅搷鍦扮粰鏁存帀浜嗭紙褰撴椂Flex榪樻槸瑗佽錛屽ぇ瀹墮兘娌℃敞鎰忓埌銆傘傘傦級Fireworks鏄疨hotoShop鐨勮佸澶翠簡錛岃偗瀹氭槸鏂╃珛鍐籌紱Dreamweaver瑕佷笉灝辨槸鏀硅鍙樿韓錛岃涓嶅氨鏄悇縐嶇悊鐢辯洿鎺ョ紦姝伙紱Flash鏃ュ瓙浼氬ソ榪囦簺錛屼絾鍏朵竴璐殑MM椋庢牸鏄惁鑳藉歡緇篃寰堥毦淇濊瘉銆?/p>

 

鐒惰孉DOBE榪欐鍑轟箮鎰忔枡鐨勫杽鑹紝涓夊墤瀹㈡棤涓閬楀純錛岀浉鍙嶈繕蹇嶇棝鎶婅嚜宸辨帹琛屽騫寸殑SVG姝葷紦錛堜釜浜轟篃寰堝枩嬈VG錛屾棤濂堝拰FLASH鍐茬獊錛屽嚭浜庡晢涓氱瓥鐣ワ紝榪欏瀛愯鐗虹壊浜嗭級銆傚湪鏈鏂扮殑CS4錛圕reative Suite 4錛変駭鍝佺郴鍒椾腑錛屼笁鍓戝渚濈劧媧誨姏鍥涘皠鍦頒笌鍏朵粬鎴愬憳宸ュ叿浠拰璋愬榪涖傞偅涔堜簨闅旀敹璐簨浠跺洓騫村涔嬪悗錛屾垜浠凡緇忔笎娓愭帴鍙椾簡MM浜у搧鍓嶉潰寮鴻鍔犱笂鐨凙DOBE鏍囩銆傚彲浠ヨ錛孉DOBE鍏呭垎鍚哥撼鏁村悎浜哅M鐨勭簿紲炲拰椋庢牸錛屾棤璁烘槸FP榪樻槸涓夊墤瀹紝ADOBE涓鐩撮兘鍦ㄥ姫鍔涘湴鍋氬緱鏇村ソ鏇村拰璋愩傦紙鏈漢鐜板湪宸茬粡鏄疉DOBE FANS浜嗭紝鍝堝搱錛屼笉榪囪繕鏄尯鎬蹇礔lash MX2004 鍜孌reamweaver2004閭d釜鏃朵唬鐨勶紝灝界褰撴椂涔熸病闂嚭鍟ヤ笢瑗挎潵銆傘傘傦級

 

璇翠簡榪欎箞澶氬叧浜嶧lash鐨勪簨鎯咃紝鍏跺疄鏄洜涓篎lash姣擣lex鏇村嚭鍚嶏紝ADOBE涔熷療瑙夊埌榪欎竴鐐癸紝鎵浠ュ湪棰勫鎺ㄥ嚭FLEX4鏃訛紝鍙堝皢鍏舵洿鍚嶄負Flash錛屽彧鏄疭DK浠嶇劧娌跨敤FLEX鐨勫悕鍙楓侳LEX鍜孎LASH騫舵病鏈夋湰璐ㄥ尯鍒紝瀹冧滑鏈緇堥兘鏄漿涓篈ctionScript婧愭枃浠訛紝鐒跺悗琚紪璇戜負浜岃繘鍒剁殑swf鏂囦歡錛堝氨鍜孞AVA鏂囦歡琚紪璇戞垚class涓鏍鳳級錛屽啀浜ょ敱FP錛團P灝卞儚JVM铏氭嫙鏈轟竴鏍鳳級鏉ユ墽琛屻備笉鍚岀殑鏄紝FLASH鏇村亸鍚戜簬璁捐浜哄憳錛屽畠鏈夋椂闂磋醬鍜屽撫鐨勬蹇碉紝鑳芥洿濂藉湴瀹炵幇鍔ㄧ敾銆佺壒鏁堛佺煭鐗囩瓑緹庡伐鏁堟灉銆侳lex鏄潰鍚戝紑鍙戣呯殑錛岄殣钘忎簡鏃墮棿杞寸殑姒傚康錛堝彧鏈変袱甯э級錛屾洿涓撴敞浜庤В鍐充紒涓氬簲鐢ㄧ殑琛ㄧ幇灞傛柟妗堬紝鎻愪緵浜嗗ぇ閲忕殑閫氱敤緇勪歡鐢ㄤ簬鏋勫緩鍓嶇欏甸潰銆侀氳繃鏁版嵁鏈嶅姟鎶鏈兘鏇村ソ鐨勫垎紱葷晫闈㈠拰閫昏緫涓氬姟灞傘?/p>

 

浠?4騫?鏈圡M鎵嬩腑鐨凢lex1.0錛屽埌05騫?0鏈圓DOBE鎵嬩腑鐨凢lex2.0錛屽啀鍒?7騫?鏈堜即闅忕潃寮哄ぇ鐨勯潰鍚戝璞¤璦ActionScript3鍑虹幇鐨凢lex3.0,鍐嶅埌鏄庡勾鍒濆彂甯冪殑寮哄姏Flex4.0銆傚熺潃RIA鐨勬槬椋庯紝Flex鍦ㄤ笉鏂蛋鍚戞垚鐔熺殑鍚屾椂錛屼篃琚洿澶氱殑涓氱晫寮鍙戣呭拰浼佷笟鐢ㄦ埛鎵鍏蟲敞鎺ュ彈銆傚鏋滅湅鍒拌繖閲屼綘寰堟劅鍏磋叮錛屾帹鑽愬湪GOOGLE涓婃悳绱竴鎶婏紝鐜板湪涓嶆槸08騫翠簡錛岀綉涓婂凡緇忔秾鐜板嚭澶ч噺鐨勭畝鏄撴暀紼嬩緵鎴戜滑鍙傝冨涔犮傚綋鐒跺鏋滀綘鏈変簺闂查挶錛屾垨鏄兂緋葷粺鍦板涔犱竴涓嬶紝涔熷彲浠ヤ拱鍑犳湰涔︺傦紙鏈夋椂闂存垜浼氭暣鐞嗕簺緗戠珯鍗氬鍜屼功綾嶆帹鑽愮殑錛?/p>

 

鍦ㄦ湰鏂囩涓夐儴鍒嗕腑錛屾垜灝嗙粨鍚堥」鐩粡楠岃皥涓涓婩lex鐨勪紭緙虹偣鍜屼嬌鐢ㄥ績寰椼傛病鐢ㄨ繃Flex鐨勫彲鑳芥棤娉曞叡楦e惂錛岄偅灝辯洿鎺ヨ煩榪囦笉鐪嬩簡錛屽懙鍛?/p>

 

 

Flex鏄拫鍥炰簨涔嬩笁銆璋佺敤璋佺煡閬?/strong>

 

涓欏規妧鏈紝浠庢蹇墊彁鍑哄埌鎶鏈爺鍙戝埌鍟嗕笟鍙戝竷錛屽啀鍒板疄闄呭簲鐢紝鏈緇堝皢浜у搧鍛堢幇鍦ㄧ敤鎴烽潰鍓嶏紝榪欐槸涓涓極闀胯屽鏉傜殑榪囩▼銆傚湪榪欏綋涓紝寰堝鏈夊垱鎰忔湁鐢熷懡鍔涚殑鎶鏈洜涓哄悇縐嶅師鍥犲皬灝忛仐鎲懼湴涓嶅垢澶姌浜嗐侳lex鑳借蛋鍒頒粖澶╃‘瀹炰笉鏄擄紝涓嬮潰璁╂垜浠粠涓嶅悓鐨勮搴︽潵鐪嬩竴涓嬪畠鏄浣曡繃鍏蟲柀灝嗭紝璧㈠緱浼楀闈掔潗鐨勩?/p>

 

鎶鏈搴︼細

錛堬紤錛夊叿澶囦簡RIA鏃朵唬瀵屽鎴風鐨勪紭鐐癸紙C/S+B/S錛?/p>

錛堬紥錛夋敮鎸佸縐嶆湇鍔″櫒璇█錛圝AVA銆?NET銆丳HP錛夊強涓繪祦妗嗘灦錛圫pring銆丠ibernate錛?/p>

錛堬紦錛変笌Java緇撳悎鍚庣浉褰撳己澶э紝鑳藉厖鍒嗗埄鐢↗ava鐨勮祫婧愯儗鏅?/p>

錛堬紨錛夋嫢鏈変赴瀵岀殑緇勪歡鍜岀涓夋柟緇勪歡錛屽浼佷笟綰х殑鏁版嵁姹囨誨拰涓氬姟嫻佺▼灞曠幇鍔涜緝寮烘倣

錛堬紩錛夊熷姪寮婧愮殑鍔涢噺錛屾嫢鏈変紬澶氭皯闂寸粍緇囧拰鐗涗漢鏀寔

錛堬紪錛堿dobe鍏徃錛堣繕鏈塎M澶氬勾縐瘡錛夌殑寮哄ぇ鑳屾櫙

錛堬紬錛夋簮浜嶧lash鐨勫ぉ鐢熶附璐紝杞繪澗浣跨敤澶氬獟浣撹祫婧愶紝鍔ㄦ佷氦浜掓у己

錛堬紭錛夊熷姪FlashPlayer鐨勫畨瑁呮櫘鍙婂害錛岃交鏉懼疄鐜拌法嫻忚鍣ㄨ法騫沖彴

錛堬紮錛夎壇濂界殑鏋舵瀯璁捐鍜屽埗浣滅簿鑹殑鏂囨。紺轟緥錛堟槑騫碏LEX錛斿悓姝ユ帹鍑轟腑鏂囩増錛?/p>

錛堬紤錛愶級鍊熷姪浜庢彃浠朵赴瀵岀殑Eclipse寮鍙戝鉤鍙板茍鎷ユ湁鐙珛鐨処DE

錛堬紤錛戯級妗嗘灦璁捐閲嶇敤鎬ч珮錛屾湁鍒╀簬妯″潡鍖栬璁?/p>

錛堬紤錛掞級榪戝嚑騫村彂灞曟佸娍鑹ソ錛岃幏寰椾簡騫挎硾璁ゅ彲錛屼駭鍝佸拰鎶鏈篃瓚婂彂鎴愮啛

 

寮鍙戣呰搴︼細

錛堬紤錛夊紑婧愶紝閫忔槑錛堝浗浜烘病鏈変笉鍠滄寮婧愮殑錛屽搱鍝堬級

錛堬紥錛夊熀浜嶦clipse寮鍙戝鉤鍙幫紝鏄撲笂鎵嬶紝涓旀彃浠朵赴瀵岋紙宸ㄤ漢鐨勮偐鑶鍟妦錛?/p>

錛堬紦錛夊熀浜嶦clipse騫沖彴錛屽紑鍙戣皟璇曟柟渚?FB4涓殑鏉′歡鏂偣錛?/p>

錛堬紨錛堿ctionScript璇█涓嶫ava鐨勮瀺鍚堝害鍜岀浉浼煎害杈冮珮錛屾槗瀛︽槗鐢?/p>

錛堬紩錛塎XML鏍囩涓嶺ML鐩鎬技錛岄昏緫娓呮櫚鍙鎬у己

錛堬紪錛夋灦鏋勮璁¤壇濂斤紝鑰﹀悎搴︿綆錛屾湁鍒╀簬緇勪歡閲嶇敤

錛堬紬錛夋棤闇閽堝涓嶅悓嫻忚鍣ㄧ紪鍐欎唬鐮侊紝鎽嗚劚緙栧啓鍜岃皟璇曠殑鍣╂ⅵ錛堥拡瀵笿S璇寸殑錛?/p>

錛堬紭錛夌被浼糣B鐨勫彲瑙嗗寲鎷栨嫿緇勪歡錛屽揩閫熷垱寤虹晫闈?/p>

錛堬紮錛夋柟渚垮畾鍒跺強浣跨敤絎笁鏂圭殑鐨偆鍜屾牱寮忥紝鏃犻渶緹庡伐涔熸湁濂芥晥鏋?/p>

錛堬紤錛愶級鏀寔澶氬獟浣撹祫婧愶紝杞繪槗寮鍙戝姩鎬佷氦浜掓у己鐨勭晫闈?/p>

錛堬紤錛戯級浼楀鐨凴PC緇勪歡淇濋殰瀵瑰悗鍙版暟鎹闂殑瀹夊叏鎬у拰鏁堢巼

錛堬紤錛掞級鏂囨。紺轟緥涓板瘜錛岄氳繃緗戠粶鍙互鑾峰彇澶ч噺鐨勫涔犺祫婧?/p>

錛堬紤錛擄級榪戜袱騫村彂灞曟佸娍鑹ソ錛屽墠鏅厜鏄?/p>

 

浼佷笟瑙掑害錛?/p>

錛堬紤錛夊紑婧愶紝鍏嶈垂錛堝叾瀹炲緢澶氭椂鍊欒繕鏄洿鎺ョ敤鐮磋В鐨勩傘傘傦級

錛堬紥錛夊叿澶囦簡RIA鏃朵唬瀵屽鎴風鐨勪紭鐐癸紙C/S+B/S錛夛紙娼祦鍟妦錛侊級

錛堬紦錛夐」鐩拰緇勪歡鐨勯噸鐢ㄦч珮錛屾槗浜庤祫婧愮Н绱拰蹇熸瀯寤?/p>

錛堬紨錛塅lex鎻愪緵浜嗕笌鍏朵粬璇█鐨勭粨鍚堬紝鑳藉箍娉涘埄鐢ㄥ凡鏈夌殑璧勬簮

錛堬紩錛夌晫闈㈠崕涓斤紝瀹㈡埛璁ゅ彲搴﹂珮

錛堬紪錛夊涔犳洸綰夸竴鑸紝鍩硅鎴愭湰浣?/p>

 

鐢ㄦ埛瑙掑害錛?/p>

錛堬紤錛夐儴緗插拰鏇存柊鏂逛究

錛堬紥錛夌晫闈㈡紓浜紝浜や簰鎬у己

錛堬紦錛夊畨鍏?/p>

 

璇翠簡榪欎箞澶氬ソ璇濓紝鍐嶆潵緇煎悎璇翠竴涓嬬己鐐廣傞壌浜庢垜鐫榪蜂簬Flex鐨勫厜鐜晥搴旓紝娌℃湁鐪嬪埌鐨勭己鐐硅繕璇瘋浣嶅澶氭彁鍑恒?/p>

緙虹偣錛?/p>

錛堬紤錛変笉鎿呴暱澶勭悊澶嶆潅鐨勪笟鍔℃祦紼嬶紝涓昏榪樻槸閫傚悎灞曠幇錛團lex涓嶆槸涓囪兘鐨勶級

錛堬紥錛夌戶鎵夸簡Flash鐨勮澶氫紭鐐癸紝鍗村敮鐙涪鎺変簡Flash鐨勫皬宸ц交鐩堬紙鍑忚偉鏄案鎭掔殑璇濋錛?/p>

錛堬紦錛夌洰鍓嶅皻娌℃湁姣旇緝濂界殑鍑忚偉絳栫暐錛屽甫瀹借緝濂芥椂榪欎笉鏄棶棰橈紙涓嶆槸涓鑸殑鍗°傘傘傦級

錛堬紨錛夊鏈嶅姟鍣ㄥ拰瀹㈡埛绔殑紜歡璁懼閮芥湁涓瀹氳姹傦紙CPU鍜屽唴瀛樺崰鐢ㄥ緢鐢熺寷銆傘傘傦級

錛堬紩錛夎繍琛屾湡鍐呭瓨娉勯湶鐘跺喌涓ラ噸錛屽敖綆″彲浠ラ氳繃涓瀹氭墜孌墊敼鍠勶紙榪欎釜寰堝穿婧冿級

錛堬紪錛夊涓浜涜緝涓撲笟鐨勯鍩熸秹鍙婅緝灝戯紝闇瑕佺涓夋柟緇勪歡鏀寔錛堟瘮濡傚湴璐ㄦ柟闈㈢殑錛?/p>

錛堬紬錛堿dobe鍏徃瀵逛腑鍥藉垎閮ㄧ殑鏀寔涓嶅錛堟劅瑙夊璁插拰鏂囨。閮藉仛寰椾笉澶燂級

錛堬紭錛夋悳绱㈠紩鎿庡swf鏂囦歡鐨勬敮鎸佷笉澶燂紙Adobe涓鐩村湪鍔姏錛?/p>

錛堬紮錛変笌浠ュ線嫻忚涔犳儻涓嶅悓錛屾瘮濡傚彸閿灞忚斀錛屽浘鐗囨棤娉曚繚瀛橈紙鍙互鏀瑰杽錛?/p>

 

閴翠簬Flex鐢熸垚鐨剆wf鏂囦歡澶偉鏄叾涓昏緙虹偣錛堝姞杞芥參錛岃繍琛屾參錛屽唴瀛樺崰鐢ㄥ錛夛紝鎴戝氨涓昏浠庡噺鑲ュ拰浼樺寲鐨勮搴︽潵璇翠竴涓嬩嬌鐢ㄥ績寰椼?/p>

浣跨敤蹇冨緱錛?/p>

錛堬紤錛塅lex鍙槸鍓嶅彴灞曠幇錛岄渶瑕佹惌閰嶅己澶х殑鍚庡彴錛堟敞鎰忓墠鍚庡彴鐨勫潎琛″拰浼樺寲錛?/p>

錛堬紥錛夎冭檻寮傛鍔犺澆錛堟瘮濡傚垎姝ュ姞杞藉閮ㄨ祫婧愶級

錛堬紦錛夌晫闈㈡帹鑽愪嬌鐢ㄧ浉瀵瑰竷灞錛屽悎鐞嗙粍鍚堬紝閬垮厤澶氫綑宓屽

錛堬紨錛夌晫闈㈠姞杞藉浘鐗囨帹鑽愪嬌鐢ㄥ閮ㄥ姞杞芥柟寮忥紝灝藉彲鑳藉浣跨敤鐭㈤噺鍥懼艦

錛堬紩錛夎鑼僀SS鏍峰紡琛紝灝ゅ叾娉ㄦ剰浣跨敤鐨勫閮ㄥ瓧浣撳ぇ灝?/p>

錛堬紪錛変嬌鐢ㄩ澶栫殑鐨偆鍜岀壒鏁堟椂闇瑕佺患鍚堣冭檻鐢熸垚鐨勬枃浠跺ぇ灝忓拰鎵ц鏁堢巼

錛堬紬錛夐傚綋鍦拌冭檻寤舵椂鍔犺澆絳栫暐錛屼富鐣岄潰鍙樉紺哄繀瑕佺殑鍐呭

錛堬紭錛夎鑼冪紪鐮侊紝鎻愰珮鎵ц鏁堢巼錛岄伩鍏嶅唴瀛樻硠闇?/p>

錛堬紮錛変嬌鐢≧SL鍜孧odule鍜屽叾浠栨湁鏁堟柟寮忓姫鍔涘噺鑲?/p>

錛堬紤錛愶級灝藉彲鑳介噸鍐欎竴浜涚戶鎵垮簳灞傜被鐨勭粍浠訛紝鎵ц鏁堢巼鏇村ソ

錛堬紤錛戯級鎱庨噸浣跨敤閲嶉噺綰х粍浠訛紙姣斿DataGrid錛孉dvancedDataGrid錛?/p>

 

鍘熸枃鏉ヨ嚜錛氶洦鏋妧鏈暀紼嬬綉 http://www.fengfly.com



]]>
[杞澆]Linux API 緗戝潃杞崲(DWORD, IP,鍩熷悕)http://m.shnenglu.com/singohgod/archive/2011/06/27/149588.html澶у疂澶╁ぉ瑙?/dc:creator>澶у疂澶╁ぉ瑙?/author>Mon, 27 Jun 2011 09:46:00 GMThttp://m.shnenglu.com/singohgod/archive/2011/06/27/149588.htmlhttp://m.shnenglu.com/singohgod/comments/149588.htmlhttp://m.shnenglu.com/singohgod/archive/2011/06/27/149588.html#Feedback0http://m.shnenglu.com/singohgod/comments/commentRss/149588.htmlhttp://m.shnenglu.com/singohgod/services/trackbacks/149588.html



鍋氱綉緇滄ā鍧楃殑鏃跺欑粡甯鎬細閬囧埌鏈夊叧緗戝潃鐨勫鐞?涓鑸ぇ鑷寸殑鎯呭艦鏄?縐?

1.寰楀埌鐨勬槸鍩熷悕,濡?www.3322.org

2.寰楀埌鐨勬槸瀹為檯鐨処P鍦板潃,濡?61.160.235.203

3.寰楀埌鐨勬槸緇忚繃inet_addr澶勭悊榪囩殑IP,涓簎nsigned long(DWORD)

涓.閭d箞濡傛灉鏄粰鍑虹偣鍒嗗埗鐨処P瑕佽漿涓篋WORD鍨嬫槸濡備綍杞寲鍛?榪欎釜鍏跺疄鏈綆鍗?鏈変笓闂ㄧ殑鍑芥暟涓撻棬澶勭悊姝や簨

unsigned long dwIP = inet_addr("222.212.12.77");
printf("IP(%s)->DWORD(%lu)\n");

//output
IP(222.212.12.77)->DWORD(1292686558)

浜?絎竴縐嶆儏鍐電殑閫嗚漿鍖?/p>

#include <stdio.h>
#include <stdlib.h>
#include <sys/select.h>
#include <netdb.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <errno.h>
#include <string.h>

int main(int argc, char *argv[])
{
	struct in_addr net;
	char tmp[16] = {0};

	if(argc != 3)
	{
		printf("You MUST enter 3 varibal.No.1:func name No.2:case.No.3:ip(string or DWORD)\n");
		return 0;
	}

	if(strcmp("1", argv[1]) == 0) 
	{
		char* ip_string;
		ip_string = argv[2];
		unsigned long dword = inet_addr(ip_string);

		printf("IP(%s)-->DWORD(%lu)\n", ip_string, dword);
	}
	else if(strcmp("2", argv[1]) == 0)
	{
		net.s_addr = (unsigned long)atol(argv[2]);
		strcpy(tmp, inet_ntoa(net));
		printf("DWORD(%s)-->IP(%s)\n",argv[2], tmp);
	}
	return 0;
}
榪欓噷緇欏嚭涓涓偣鍒嗗埗IP鍜孌WORD鐩鎬簰杞寲鐨勭▼搴?/pre>
涓?濡傛灉緇欏嚭鐨勬槸鍩熷悕鑰屾兂寰楀埌鐐瑰垎鍒剁殑IP鍛?
榪欓噷緇欏嚭涓涓帴鍙?鏀寔杈撳叆鐨勭被鍨嬫槸鐐瑰垎鍒跺拰鍩熷悕2涓被鍨?榪斿洖鐨勬槸DWORD鍨嬬殑IP
鏈変竴鐐硅澹版槑鐨勬槸gethostbyname榪欎釜鍑芥暟蹇呴』鍦ㄧ綉緇滆繛閫氱殑鎯呭喌涓嬫墠鑳芥紜畬鎴愬煙鍚嶇殑瑙f瀽,浣犳兂,榪炰釜緗戦兘涓嶉?瀹冩庝箞瑙f瀽?
#include <stdio.h>
#include <stdlib.h>
#include <sys/select.h>
#include <netdb.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <errno.h>
#include <string.h>


#define DWORD unsigned long

DWORD platform_domain2ip(const char *szDomain, char *szDotNumIP)
{
	char szAddr[32] = {0};
	struct hostent *pHost;

	printf("input domain name(%s)\n", szDomain);
	

	if((pHost = gethostbyname(szDomain)) == NULL)
	{
		printf("can not parse domain\n");
		return -1;
	}
	printf("HostName :%s\n",pHost->h_name);
	strcpy(szAddr, inet_ntoa(*((struct in_addr *)pHost->h_addr)));
	printf("IP Address :%s\n", szAddr);
	strcpy(szDotNumIP, szAddr);

	return inet_addr(szAddr);
}

int main(int argc, char *argv[])
{
	DWORD dwip;
	char *ip = malloc(32);
	//dwip = platform_domain2ip("www.3322.org", ip);
	dwip = platform_domain2ip("61.160.235.203", ip);
	printf("ip 1 (%s) 2 dw(%lu)\n", ip, dwip);
	return 0;
}
//鍙互灝唌ain鐨勬敞鍐屽垎鍒墦寮鏉ュ垽鏂笅緇撴灉鏄惁姝g‘,榪欓噷緇欏嚭榪愯鐨勭粨鏋?鏈夊浘鏈夌湡鐩?/pre>
緙栬瘧鐨勫懡浠ゅ啀璇翠笅鍚?鎬曟湁浜轟笉鐭ラ亾
gcc gethost.c –Wall –o gethost//鍦╨inux涓?/pre>
arm-hismall-linux-gcc gethost.c –Wall –o gethost//宓屽叆寮忕幆澧冧笅
 
姝ゆ帴鍙e凡緇忓湪鎴戠殑宸ョ▼涓嬌鐢?鍦ㄥ鉤鍙癐P鐨勮В鏋愬拰3322鐨勮В鏋愪腑寰楀埌浜嗗簲鐢?鎵浠ユ槸紼沖畾鍙鐨?
榪?涓璉P鐨勮漿鍖栭兘浜嗚В浜嗙殑璇?閭d箞緗戠粶緙栫▼涓嶅氨鎵櫎浜嗕竴涓ぇ鐭沖ご鍚?鍛靛懙,澶у鍔熻兘榪涙
 
緗戜笂姣旇緝嫻佽鐨刧ethostbyname鐨勪緥瀛愬涓?鍙楀埌浜嗗惎鍙?/pre>
#include <stdio.h>
#include <stdlib.h>
#include <sys/select.h>
#include <netdb.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <errno.h>
#include <string.h>

int main(int argc, char **argv)
{
    char *ptr,**pptr;
    struct hostent *hptr;
    char str[32];

    /* 鍙栧緱鍛戒護鍚庣涓涓弬鏁幫紝鍗寵瑙f瀽鐨勫煙鍚嶆垨涓繪満鍚?*/ 
    ptr = argv[1];

    /* 璋冪敤gethostbyname()銆傝皟鐢ㄧ粨鏋滈兘瀛樺湪hptr涓?*/ 
    if((hptr = gethostbyname(ptr)) == NULL)
    {
        printf("gethostbyname error for host:%s\n", ptr);
        return 1; /* 濡傛灉璋冪敤gethostbyname鍙戠敓閿欒錛岃繑鍥? */
    }

     
    printf("official hostname:%s\n",hptr->h_name);

    /* 涓繪満鍙兘鏈夊涓埆鍚嶏紝灝嗘墍鏈夊埆鍚嶅垎鍒墦鍑烘潵 */ 
    for(pptr = hptr->h_aliases; *pptr != NULL; pptr++)
        printf("  alias:%s\n",*pptr);

    /* 鏍規嵁鍦板潃綾誨瀷錛屽皢鍦板潃鎵撳嚭鏉?*/
    switch(hptr->h_addrtype)
    {
        case AF_INET:
        case AF_INET6:
            pptr=hptr->h_addr_list;

            /* 灝嗗垰鎵嶅緱鍒扮殑鎵鏈夊湴鍧閮芥墦鍑烘潵銆傚叾涓皟鐢ㄤ簡inet_ntop()鍑芥暟*/
            for(;*pptr!=NULL;pptr++)
            printf("  address:%s\n", inet_ntop(hptr->h_addrtype,*pptr, str, sizeof(str)));
        break;
        default:
            printf("unknown address type\n");
        break;
    }

    return 0;
}



]]>[杞澆]linux涓婥++寮鍙戝伐鍏?/title><link>http://m.shnenglu.com/singohgod/archive/2011/05/08/145950.html</link><dc:creator>澶у疂澶╁ぉ瑙?/dc:creator><author>澶у疂澶╁ぉ瑙?/author><pubDate>Sun, 08 May 2011 07:18:00 GMT</pubDate><guid>http://m.shnenglu.com/singohgod/archive/2011/05/08/145950.html</guid><wfw:comment>http://m.shnenglu.com/singohgod/comments/145950.html</wfw:comment><comments>http://m.shnenglu.com/singohgod/archive/2011/05/08/145950.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/singohgod/comments/commentRss/145950.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/singohgod/services/trackbacks/145950.html</trackback:ping><description><![CDATA[<div style="background-color: rgb(238, 238, 238); font-size: 13px; border-left-color: rgb(204, 204, 204); padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; "><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000; ">灝盋錛嬶紜寮鍙戝伐鍏瘋岃█錛屼笌Windows涓嬪井杞紙VC錛?nbsp;VS2005絳夛級涓緇熷ぉ涓嬬浉姣旓紝Linux</span><span style="color: #000000; ">/</span><span style="color: #000000; ">Unix涓婥錛嬶紜寮鍙戯紝鍙皳浜旇姳鍏棬錛屽悇寮忓悇鏍楓侲macs, vi, eclipse, anjuta錛宬develop絳夊眰鍑轟笉絀楓?br>Windows涓嬶紝寮鍙戝伐鍏峰浠ラ泦鎴愬紑鍙戠幆澧僆DE鐨勫艦寮忓睍鐜扮粰鏈緇堢敤鎴楓備緥濡傦紝VS2005闆嗘垚浜嗙紪杈戝櫒錛屽畯姹囩紪ml錛孋 </span><span style="color: #000000; ">/</span><span style="color: #000000; ">C</span><span style="color: #000000; ">++</span><span style="color: #000000; ">緙栬瘧鍣╟l錛岃祫婧愮紪璇戝櫒rc錛岃皟璇曞櫒錛屾枃妗g敓鎴愬伐鍏? nmake銆傚畠浠互闆嗘垚鏂瑰紡鎻愪緵緇欐渶緇堢敤鎴鳳紝瀵逛簬鍒濆鑰呰岃█鍗佸垎鏂逛究銆備絾鏄紝榪欑鍟嗕笟妯″紡錛岀洿鎺ュ鑷寸敤鎴峰彲瀹氬埗鎬у樊錛屼笉鍒╀簬鑷姩鍖栵紝闆嗘垚絎笁鏂瑰伐鍏風殑鑳藉姏寮便備緥濡傦紝鏃犳硶瀹氬埗涓浜涘畯鏉ュ鐞嗕竴浜涢噸澶嶆搷浣滐紱浣撲細涓嶅埌鑷姩鍖杕akefile涓姝ュ埌浣嶅揩鎰燂紱鏃犳硶榪滅▼鐧誨綍鍒版湇鍔″櫒涓婅繘琛屽紑鍙戯紱鏃犳硶浣跨敤鏌愮”綺樺悎鍓?#8221;鏉ユ妸絎笁鏂瑰伐鍏鳳紙渚嬪錛屾枃鏈伐鍏鳳紝瀛楃涓插伐鍏鳳級鏈夋晥鍦拌皟鐢ㄨ搗鏉ャ傚彲浠ヨ錛岃壇濂界殑鍟嗕笟鏀寔鍜屽偦鐡滃紡寮鍙戯紝鏄畠浠富瑕佺殑浼樼偣銆?br>鍦╨inux涓嬶紝寮鍙戝伐鍏瘋鍒囧壊鎴愪竴涓釜鐙珛鐨勫皬宸ュ叿銆傚悇鑷鐞嗕笉鍚岀殑闂銆備緥濡傦紝緙栬緫鍣紙emacs, vim)鐢ㄦ潵榪涜緙栬緫紼嬪簭鐨勶紝璋冭瘯鍣紙gdb)鐢ㄦ潵璋冭瘯紼嬪簭錛岀紪璇戝櫒錛圙CC錛夌敤鏉ョ紪璇戝拰閾炬帴紼嬪簭鐨勶紝鎬ц兘鍒嗘瀽宸ュ叿錛坓cov, gprof)鐢ㄦ潵浼樺寲紼嬪簭鐨勶紝鏂囨。鐢熸垚鍣紙doxygen錛夌敤鏉ョ敓鎴愭枃妗g殑銆傚悓鏃訛紝榪樻湁涓浜涚郴緇熷伐鍏峰拰緋葷粺鐭ヨ瘑錛屾垜浠槸寰堟湁蹇呰浜嗚В鐨勶細紼嬪簭鑷姩鍖栨満鍒?nbsp;makefile錛岀郴緇熺矘鍚堝墏shell錛岀郴緇熸煡鎵懼伐鍏穏rep, locate, find銆傚叾瀹冪殑宸ュ叿錛堜緥濡俢tags錛?nbsp;OCI鍏徃鐨凪PC絳夌瓑錛夛紝涓鏃︾啛緇冩帉鎻★紝瀹冧滑灝嗘垚涓轟綘鎵嬩腑鐨勫埄鍣ㄣ?br>鏈枃涓昏鏄竴浜涢拡瀵筁INUX涓嬪紑鍙戝伐鍏蜂嬌鐢ㄧ殑緇忛獙涔嬭皥銆傜敱浜庯紝宸ュ叿鍝佺綣佸錛屾垜浠病鏈夎兘鍔涗篃娌℃湁蹇呰涓涓浠嬬粛銆傚浜嶭INUX涓婭DE宸ュ叿錛屼緥濡?nbsp;eclipse, anjuta絳夛紝瀹冧滑铏界劧涔熷緢瀹炵敤錛屼絾鏄嬌鐢ㄨ搗鏉ユ瘮杈冪畝鍗曪紝鑰屼笖鐩墠榪樼畻涓嶄笂涓繪祦銆傛墍浠ワ紝瀹冧滑灝嗕笉琚潃閲嶄粙緇嶃傚悓鏃訛紝鏈枃涔熶笉鎵撶畻鍐欐垚鍚勪釜宸ュ叿鐨勬搷浣滄墜鍐岋紝鍙潃鐪間簬浠嬬粛鍚勪釜宸ュ叿鐨勬兂瑕佽В鍐崇殑闂銆佽繍琛屾満鐞嗗拰涓昏鐗規с?br>姝f枃<br>緙栬緫鍣?br>瑕佽繘琛屽紑鍙戯紝絎竴浠朵簨鎯呭氨鏄夋嫨涓涓悎閫傜殑緙栬緫鍣ㄣ傜紪杈戝櫒閫夋嫨鏈夊嚑涓绱狅細<br></span><span style="color: #000000; ">1</span><span style="color: #000000; ">錛夊噺灝戜笉蹇呰鐨勭紪杈戝姩浣滐紝鍑忓皯緙栬緫鐨勬椂闂淬?br>涓鍒囪兘澶熸棤浜屼箟鎬ф弿榪板嚭鏉ョ殑緙栬緫浠誨姟錛岄兘鍙互鑰屼笖搴旇鑳借鑷姩鍖栥備緥濡傦紝姣忎竴涓狢錛嬶紜紼嬪簭閮戒細鏈変竴涓猰ain鍑芥暟錛涙垜浠湪瀹氫箟.h鏂囦歡鏃訛紝閮藉笇鏈涘姞鍏ヤ竴浜涢澶勭悊鎸囦護錛僤efine鏉ュ府鎴戜滑瑙e喅閲嶅寮曠敤鍚屼竴涓ご鏂囦歡鑰屽甫鏉ョ殑楹葷儲銆傞紶鏍囨搷浣滄繪槸姣旈敭鐩樻搷浣滆鎱㈢殑銆傝繖鏂歸潰EMACS鍋氬緱鍙畻鏄埌浜嗘瀬鑷淬傛墍浠ワ紝 EMACS鐢ㄦ埛緇忓父浼氬惞鍢橈細浠栦滑緙栬緫鐨勯熷害絳夊悓浜庝粬浠濊冪殑閫熷害銆?br></span><span style="color: #000000; ">2</span><span style="color: #000000; ">錛夊彲鎵╁睍鎬ч珮銆?br>紼嬪簭鍛橀鏈熺殑緙栬緫鍣ㄥ簲璇ヨ兘鎻愪緵涓浜涚紪紼嬬殑甯姪錛屼緥濡傦紝璇硶楂樹寒錛岃嚜鍔ㄨˉ榻愶紝鑷姩鎺掔増錛岃娉曟鏌ョ瓑絳夈傜暀蹇冭瀵熶竴涓媑edit, vim, emacs, ultraEdit錛屽氨浼氬彂鐜板畠浠彁渚涚殑榪滀笉鏄痺indows 璁頒簨鏈紝鍐欏瓧鏉挎彁渚涚殑閭d箞綆闄嬬殑鍔熻兘銆傚浜庝竴縐嶆柊鐨勮璦錛屾柊鐨勮娉曪紝瀹冧滑搴旇鑳藉緢鏂逛究鍦版彁渚涙敮鎸侊紝鑰屼笉鍋滅暀鍦ㄤ竴縐嶆垨鍑犵鍥哄畾鐨勮璦涓娿?br></span><span style="color: #000000; ">3</span><span style="color: #000000; ">錛夌敤鎴峰彲瀹氬埗鎬ч珮銆?br>濡傛灉鎯抽暱鏈熶粠浜嬬爺鍙戯紝 鐗瑰埆鏄痩inux</span><span style="color: #000000; ">/</span><span style="color: #000000; ">unix涓嬬爺鍙戠殑璇濓紝閭d箞浣犲緢鏈夊繀瑕佸濂戒竴涓姛鑳借凍澶熺殑緙栬緫鍣ㄣ傛湁榪欎箞涓鍙ヨ瘽錛歀inux涓嬬▼搴忓憳鍒嗕負涓夌錛屼嬌鐢╡macs鐨勶紝浣跨敤vi鐨勶紝榪樻湁鍏跺畠銆?br>EMACS鏄疭tallman鐢╨isp璇█鍐欑殑涓涓狦PL鐨勭紪杈戝櫒銆傛垜浠繖閲屾墍璇寸殑emacs鎸囩殑鏄疓NU emacs錛岃岄潪Xemacs銆傜敱浜庡畠鐨勫紑鏀炬э紝鎴戜滑鍙互鎶婂畠鎵撻犳垚涓涓姛鑳藉己澶х殑IDE銆傛垜浠湪瀹夎濂紺GYwin涔嬪悗錛屼篃鍙互鍦╓indows緋葷粺涓嬩嬌鐢?nbsp;EMACS銆侰GYwin鍜孧INGW鏄涓夋柟鍐欑殑涓涓湪Windows緋葷粺涓婃ā鎷烶OSIX緋葷粺鐨勫伐鍏楓?br>EMACS涓庡叾璇寸殑鏄竴涓紪杈戝櫒錛屽掍笉濡傝瀹冩槸涓涓搷浣滅郴緇熴傛垜浠彲浠ョ敤瀹冩潵鍐欑紪紼嬶紝鍐檞iki錛屾敹鍙戦偖浠剁瓑絳夈侲MACS涓昏鏄氳繃涓ょ鏂瑰紡鏉ヨ繘琛屾墿灞曪細el鑴氭湰(elisp鏄痩isp鐨勪竴縐嶆柟璦錛夊拰絎笁鏂規墿灞曞寘銆侲MACS鐨勫叆闂ㄦ垚鏈緢楂樸傜敱浜庢槸綰敭鐩樻搷浣滐紝鎵浠ラ渶瑕佽蹇嗗ぇ閲忕殑蹇嵎閿紱鍔熻兘寮哄ぇ鏄氳繃鐢ㄦ埛娣誨姞涓浜涙墿灞曞寘錛宭isp鑴氭湰鏉ュ疄鐜扮殑銆傚浣曟紜厤緗拰淇敼鏄緢闇瑕佽愬績鍜屾妧宸х殑銆?br>緙栬瘧鍣?br>緙栬瘧鍣ㄩ閫塆CC錛圙NU COMPILER COLLECTION)銆傚師鍥犳湁涓や釜錛屽畠鏄疓NU寮婧愮殑錛屽悓鏃跺畠瀵規爣鍑咰</span><span style="color: #000000; ">++</span><span style="color: #000000; ">鐨勬敮鎸佸害楂樿揪96.</span><span style="color: #000000; ">15</span><span style="color: #000000; ">%</span><span style="color: #000000; ">銆傝孷C</span><span style="color: #000000; ">++</span><span style="color: #000000; ">6</span><span style="color: #000000; ">.0鐨勬敮鎸佸害鍙湁83.</span><span style="color: #000000; ">43</span><span style="color: #000000; ">%</span><span style="color: #000000; ">銆?nbsp;GCC涓嶄粎鏄氬父鎰忎箟涓婄殑C鎴朇</span><span style="color: #000000; ">++</span><span style="color: #000000; ">鐨勭紪璇戝櫒錛屽畠榪樺彲浠ョ紪璇慾ava絳夊叾瀹冭璦銆俫cc鏄痝nu c鐨勭紪璇戝櫒,g</span><span style="color: #000000; ">++</span><span style="color: #000000; ">鏄痝nu c</span><span style="color: #000000; ">++</span><span style="color: #000000; ">鐨勭紪璇戝櫒, 鑰孍GCS(Enhanced GNU Compiler Suite)鍙互璁や負鏄痝cc鐨勬敼榪涚増銆?br>緙栬瘧璇█浠庢簮紼嬪簭鍒扮洰鏍囦唬鐮佷細緇忚繃濡備笅鍑犱釜闃舵錛氭簮紼嬪簭錛嶏紴姹囩紪紼嬪簭錛嶏紴緙栬瘧鎴恛bj紼嬪簭錛?/span><span style="color: #000000; ">></span><span style="color: #000000; ">閾炬帴鎴愭渶緇堝彲鎵ц紼嬪簭銆傛垜浠彲浠ラ氳繃涓鏉$紪璇戞寚浠ゆ潵瀹屾垚鎵鏈夋楠ゃ備篃鍙互鍒嗘鎵ц銆俫cc鏈変笁涓噸瑕侀夐」</span><span style="color: #000000; ">-</span><span style="color: #000000; ">E(鍙繘琛岄澶勭悊), </span><span style="color: #000000; ">-</span><span style="color: #000000; ">S(鐢熸垚姹囩紪浠g爜), </span><span style="color: #000000; ">-</span><span style="color: #000000; ">g(鐢熸垚甯﹀師浠g爜璋冭瘯絎﹀彿鐨勫彲鎵ц鏂囦歡錛屽鏋滄兂鐢╣db璋冭瘯鐨勮瘽錛屽氨搴旇鍦ㄧ紪璇戞椂鎵撳紑榪欎釜閫夐」錛夈?br>GCC鍙互鐪嬩綔涓涓蔣浠跺寘錛岄櫎浜嗙紪璇戝伐鍏鳳紝瀹冭繕闆嗘垚浜嗚皟璇曞櫒gdb錛屾ц兘鍒嗘瀽宸ュ叿gcov, gprof銆傚彧瑕佹垜浠濂戒簡GCC錛岃繖浜涘己澶у伐鍏峰氨鍙互鐩存帴浣跨敤浜嗐?br>閫氳繃gcov錛屾垜浠彲浠ユ煡鐪嬩竴涓▼搴忥紝婧愪唬鐮佷腑姣忚浠g爜鐨勮繍琛屾鏁般傛垜浠紭鍖栬繍琛屾鏁版渶澶氱殑浠g爜錛岄偅涔堝氨鍙互澶уぇ浼樺寲紼嬪簭銆備嬌鐢╣cov鏃訛紝闇瑕佹墦寮 GCC鐨刦profile</span><span style="color: #000000; ">-</span><span style="color: #000000; ">arcs鍜宖test</span><span style="color: #000000; ">-</span><span style="color: #000000; ">coverage涓や釜閫夐」銆俫cov涓父鐢ㄧ殑閫夐」鏈?/span><span style="color: #000000; ">-</span><span style="color: #000000; ">b鍒嗘敮緇熻淇℃伅銆?br>閫氳繃gprof宸ュ叿錛屾垜浠彲浠ユ煡鐪嬪嚱鏁頒箣闂寸殑璋冪敤欏哄簭錛屽強鍚勪釜鍑芥暟榪愯鐨勬椂闂淬傛垜浠彲浠ュ皢gprof鐞嗚В涓簂inux</span><span style="color: #000000; ">/</span><span style="color: #000000; ">unix鑷甫宸ュ叿time鐨勫姞寮虹増銆備嬌鐢╣prof鏃訛紝闇瑕佹墦寮GCC鐨刾g閫夐」銆?br>gcov鍜?nbsp;gprof鐨勫叡鍚岀偣鏄湪緙栬瘧紼嬪簭鏃訛紝鍔犲叆鑷繁鐨勪竴浜涜緟鍔╀俊鎭紝鐢辨鏉ヨ繘琛岀▼搴忚瘖鏂傞櫎浜嗭紝榪欎簺浼樺寲鎵嬫錛屾垜浠繕鍙互浣跨敤涓浜涘唴瀛樻硠婕忓伐鍏鳳紝鏉ュ噺灝戦噹鎸囬拡錛屾湭閲婃斁鐨勫唴瀛樼┖闂淬?br>璋冭瘯鍣?br>GDB鍗矴NU鐨勮皟璇曞櫒錛屽畠鏄疓CC闄勫甫鐨勪竴涓ц兘浼樿川鐨勮皟璇曞櫒銆傞氳繃GDB鍜岃剼鏈粨鍚堬紝鎴戜滑鍙互寰堝ソ鐨勫疄鐜板洖褰掓祴璇曘?br>GDB鍙互榪愯浜嶤LI鍜孏UI涓ょ妯″紡銆傞粯璁DB鏄疌LI妯″紡鐨勶紝鎴戜滑鍙互鍘諱笅杞藉拰瀹夎GUI妯″紡鐨凣DB錛屼緥濡倄xgdb錛?nbsp;ddd絳夈備竴涓洿濂界殑鏂瑰紡鏄湪 EMACS涓嬌鐢℅DB銆侴DB鍖呮嫭visual studio宸ュ叿鐨勬墍鏈夎皟璇曞姛鑳斤紝榪樺寘鎷畠娌℃湁鐨勫姛鑳姐傚畠闄や簡鏀寔錛屾垜浠竴鑸殑璁劇疆鏂偣錛屽崟姝ヨ窡韙紝step </span><span style="color: #0000FF; ">in</span><span style="color: #000000; ">, step </span><span style="color: #0000FF; ">out</span><span style="color: #000000; ">, step over絳夛紝榪樻湁涓浜涘己澶х殑鍔熻兘銆傚湪gdb涓紝鎴戜滑鍙互鏈変互涓嬪嚑縐嶆殏鍋滄柟寮忥細鏂偣錛圔reakPoint錛夈佽瀵熺偣錛圵atchPoint錛夈佹崟鎹夌偣錛圕atchPoint錛夈佷俊鍙鳳紙Signals錛夈佺嚎紼嬪仠姝紙Thread Stops錛夈?br>涓嬮潰鍒椾婦鍑犱釜璁╂垜鍗拌薄娣卞埢鐨勫姛鑳姐?/span><span style="color: #000000; ">1</span><span style="color: #000000; ">錛夐氳繃 watch鎸囦護錛屽彲浠ヨ紼嬪簭鍦ㄦ煇涓彉閲忕殑鍊煎彂鐢熷彉鍖栨椂錛屾殏鍋滀笅鏉ャ?/span><span style="color: #000000; ">2</span><span style="color: #000000; ">錛夐氳繃print鎸囦護錛屽湪紼嬪簭榪愯鏃訛紝璁劇疆鍙橀噺鐨勫鹼紝榪愯涓涓▼搴忚嚜韜敮鎸佺殑涓涓柟娉曘?/span><span style="color: #000000; ">3</span><span style="color: #000000; ">錛夐氳繃until鎸囦護錛屾垜浠彲浠ヨ紼嬪簭鍦ㄨ繍琛屽埌鏌愪釜紼嬪簭鏃舵殏鍋滀笅鏉ャ?/span><span style="color: #000000; ">4</span><span style="color: #000000; ">錛夐氳繃break.. if鎸囦護錛屼嬌寰楃▼搴忓湪婊¤凍鏌愪釜bool琛ㄨ揪寮忔椂錛屾殏鍋滀笅鏉ャ?br>綺樺悎鍓?br>鎴戞兂閫氳繃“綺樺悎鍓?#8221;榪欎釜璇嶆潵琛ㄨ揪灝嗗涓伐鍏風矘鍚堣搗鏉ョ殑“鑳舵按”銆備緥濡傦紝閫氳繃shell鑴氭湰錛屾垜浠彲浠ユ妸OS鍛戒護錛宻ed鎸囦護錛宎wk鎸囦護錛屽叾瀹冭剼鏈枃浠剁瓑涓茶仈璧鋒潵錛屽彂鎸ュ畠浠殑鍚堝姏銆傚湪linux C</span><span style="color: #000000; ">++</span><span style="color: #000000; ">緙栫▼涓紝鎴戜滑涓嶅彲閬垮厤鍦頒細浣跨敤makefile鏂囦歡銆傞氳繃錛屽畠鎴戜滑鍙互鎶婄紪璇戞寚浠わ紝鐢熸垚鏂囨。鎿嶄綔錛屾竻闄ゆ搷浣滅瓑絳変覆鑱旇搗鏉ャ備粠鏌愮鎰忎箟涓婃潵鐪嬶紝瀹冧篃鐩稿綋浜庝竴涓矘鍚堝墏銆?br>makefile鐨勫嚭鍙戠偣鏄紝緇存姢濂戒竴涓」鐩腑浼楀鏂囦歡鐨勪緷璧栧叧緋伙紝鐢辨寰楀埌涓涓簮紼嬪簭鐨勬嫇鎵戝浘銆傚綋鎴戜滑鍙慨鏀瑰浘涓煇涓粨鐐規椂錛岄噸鏂扮紪璇戞椂灝卞彧闇瑕佸皢鎷撴墤鍥句腑鍏寵仈鐨勯摼璺繘琛岀紪璇戝氨濂戒簡銆傜敱姝わ紝澶уぇ緙╃煭浜嗙紪璇戠殑鏃墮棿銆俶ake鏈変袱澶ф蹇碉細dependencies鍜宺ules銆傝鍒檙ule鍗抽拡瀵規瘡涓涓緷璧栧叧緋?nbsp;dependency瀹氫箟涓涓搷浣滆鍒欍傝繖涓粏綺掑害鐨勫垎紱伙紝灝卞彲浠ヤ嬌鎴戜滑鍙互瀹氬埗杞歡鏋勫緩鐨勮涓恒備緥濡傦紝淇敼浣跨敤鐨勭紪璇戝櫒錛屼慨鏀筰ncludepath, 淇敼libpath, 淇敼緙栬瘧閫夐」絳夌瓑銆傛垜浠父瑙佺殑VC涓殑nmake錛屽姛鑳藉拰make鏄被浼肩殑銆?br>make浣跨敤鐨勯噸鐐瑰拰闅劇偣鏄紪鍐橫akefile鏂囦歡銆侻akefile鐨勮娉曠浉瀵瑰叾瀹冭璦鏉ヨ鏄緢涓嶄竴鏍風殑錛屾垜浠鐗瑰埆娉ㄦ剰TAB閿拰絀烘牸閿殑鍖哄埆銆傛湁寰堝宸ュ叿鍙互鐢ㄦ潵甯姪鎴戜滑鐢熸垚Makefile銆傛渶鍑哄悕鐨勫氨鏄疓NU鐨刟utoconf浜嗐備竴涓狦NU紼嬪簭鐨勭紪鍐欙紝闇瑕乤utoscan, aclocal, autoconf, automake榪欏洓涓伐鍏楓?br>鎴戜滑鐭ラ亾GNU杞歡瀹夎鐨勪笁姝ユ洸鏄細.</span><span style="color: #000000; ">/</span><span style="color: #000000; ">configure, make, make install銆傚叾涓?</span><span style="color: #000000; ">/</span><span style="color: #000000; ">configure灝辨槸鏍規嵁autoconf, alocal絳夊伐鍏風敓鎴愪竴涓猰akefile鏂囦歡銆俶ake鎸囦護灝辨槸璋冪敤make鎸囦護鏉ユ牴鎹甿akefile鏂囦歡鐨勮鍒欐潵緙栬瘧婧愮▼搴忋傝宮ake install灝辨槸鎵цmakefile涓殑install瑙勫垯鎸囧嚭鐨勬搷浣滐紙涓鑸槸copy鎿嶄綔錛夈傝宮ake clean灝辨槸鎵цmakefile涓殑clean瑙勫垯鎸囧嚭鐨勬搷浣滐紙涓鑸槸rm鎿嶄綔錛夈傛垜浠敤Eclispe</span><span style="color: #000000; ">+</span><span style="color: #000000; ">CDT寮鍙慚anaged C</span><span style="color: #000000; ">++</span><span style="color: #000000; "> Project鏃訛紝瀹冨氨鏄氳繃objects.mk,subdir.mk,sources.mk涓変釜鏂囦歡鏉ョ敓鎴怣akefile銆傛垜浠敞鎰忚瀵熺紪璇戞椂鐨勮緭鍑轟俊鎭紝灝卞彲浠ョ湅鍒版樉紺虹殑Makefile鏂囦歡鐨勫唴瀹廣?br>鍙互璇達紝濡傛灉鎯崇紪璇戝嚭璺ㄥ鉤鍙扮殑C錛嬶紜紼嬪簭錛岄偅涔坢akefile鏄竴縐嶆渶鏂逛究鐨勬満鍒躲?br>OCI鍏徃涓篋ouglas C.Schmidt鐨凙CE錛孴AO寮婧愮ぞ鍖虹紪鍐欎簡涓孌典紵澶х殑perl鑴氭湰錛嶏紞MPC銆傚畠鐢卞鉤鍙頒俊鎭紝涓涓鍒欐枃浠訛紝婧愪唬鐮侊紝鐢熸垚鐢ㄦ埛鎯寵鐨勫伐紼嬫枃浠訛紝渚嬪Make, Nmake, Visual C</span><span style="color: #000000; ">++</span><span style="color: #000000; "> </span><span style="color: #000000; ">6</span><span style="color: #000000; ">, Visual C</span><span style="color: #000000; ">++</span><span style="color: #000000; "> 7絳夌瓑銆侴oogle Web Tookit, Celtix鍋氱殑浜嬫儏涓庝箣綾諱技錛屼笉榪囧畠浠槸閽堝JAVA鐨勶紝鑰孧PC鏄拡瀵笴錛嬶紜鐨勩?br>緇撴潫璇?br>鍥藉唴璧勬枡澶鐨勪綆灞傛鐨勯噸澶嶏紝緇忓父鏄竴涓綉欏佃澶氭杞澆錛岃屼笖鍥炵瓟闂鏃舵繁搴︿笉澶熴備釜浜烘壘璧勬枡鐨勯『搴忔槸錛氭煡鐪媞uick start鎴杊ow to鏂囨。錛嶏紴鑷甫鐨勫府鍔╋紙濡傛灉鐪嬭搗鏉ヤ笉澶悆鍔涜瘽錛夛紞錛炵櫨搴︽煡涓涓嬩腑鏂囩綉欏碉紝鏉ョ悊娓呬竴涓嬪熀鏈蹇碉紞錛瀏oogle鏌ヤ竴涓嬶紞錛炲嚑涓ぇ鐨勶紝鐩稿叧鐨勭綉绔欐煡涓嬭祫鏂欙紞錛炵湅鑷甫甯姪銆傚啀鑰咃紝闈㈠闈㈢殑浜ゆ祦鏄崄鍒嗛噸瑕佺殑錛屽ぇ瀹跺彲浠ョ浉浜掔悊涓涓嬫蹇碉紝浜ゆ祦涓涓嬪績寰椼傚彲鎯滐紝鎴戣韓杈硅繖縐嶆皼鍥磋繕鏄笉澶熴?br>Linux涓嬪紑鍙戣繕鍙互鏇村弸濂戒竴浜涖備釜浜烘劅瑙夛紝 linux寮鍙戣鍦ㄥ浗鍐呮櫘閫氱▼搴忓憳涓ぇ瑙勬ā鏅強錛岃繕鏈変竴孌靛緢闀跨殑璺璧般倁buntu鐏垎鐨勪富瑕佸師鍥狅紝灝辨槸瀹冨府鐢ㄦ埛鎼ソ涓浜涢粯璁ら厤緗傜敤鎴峰鏋滄兂鏂板姞涓浜涙湇鍔★紝瀹冧滑鎻愪緵浜嗚壇濂斤紝鏈夋晥鍦版敮鎸併傛墍浠ワ紝鎴戞兂鎴戜滑鍙互鍦↖DE鍜岀幇鍦╨inux榪欑涓涓釜灝忛儴浠剁殑榪欎袱縐嶇姸鎬佷箣闂達紝鍙栦竴涓姌琛楓備篃灝辨槸閽堝鍑犵涓昏闇姹傜殑鐢ㄦ埛錛屽彂甯冧竴浜涢厤緗ソ鐨勭幆澧冦傚挨鍏舵槸emacs鐨勫悇縐峞l鑴氭湰錛堜緥濡傜晫闈富棰樼殑color</span><span style="color: #000000; ">-</span><span style="color: #000000; ">theme錛?nbsp;C</span><span style="color: #000000; ">/</span><span style="color: #000000; ">C</span><span style="color: #000000; ">++</span><span style="color: #000000; ">璇█緙栬緫絳栫暐錛屼唬鐮佹牱寮忚緗剼鏈紝鍚勭emacs緋葷粺璁劇疆錛夛紝 絎笁鏂規墿灞曞寘錛堟ā鏉縯emplate, 緙栫▼鏀寔鍖卌edet絳夛級銆傛瘡涓涓敤鎴鋒氮璐規椂闂存潵榪涜榪欎簺閰嶇疆鏄崄鍒嗘病鏈夋剰涔夌殑錛佸伐鍏峰緇堝彧鏄伐鍏鳳紝鎴戜滑涓嶈兘娌︿負宸ュ叿鐨勫ゴ闅訛紝涓嶈兘鎶婁竴澶ч儴鍒嗙簿鍔涙氮璐瑰湪閰嶇疆宸ュ叿涓娿?br>鍊煎緱娉ㄦ剰鐨勬槸鐜板湪鏂瑰叴鏈壘鐨別clipse鏈夊悜榪欐柟闈㈣繄榪涚殑瓚嬪娍銆備絾鏄紝鐜板湪emacs宸茬粡鍋氬緱寰堝ソ浜嗭紝ecilpse鑳藉惁瓚呰秺瀹冿紝鎴戜滑榪樻湁寰呰瀵熴傛垜浠彲浠ラ氳繃鍦╡clipse涓婂畨瑁匰DT鎻掍歡鏉ヨ繘琛孋</span><span style="color: #000000; ">++</span><span style="color: #000000; ">寮鍙戙備絾鏄紝瀹冪洰鍓嶈繕涓嶆敮鎸佽皟璇曞姛鑳斤紝鑰屼笖涓嶅お紼沖畾錛屽姛鑳戒笉澶熷己銆備緥濡傦紝鏈夋椂浼氭棤鏁呮鎺夛紱濡傛灉鎯抽氳繃eclipse鏉ヨ漿鍚戝嚱鏁板師鍨嬬殑璇濓紝閭d箞榪庢帴浣犵殑灝嗘槸涓涓極闀褲佺劍鎬ョ殑絳夊緟銆?br>鐢變簬鏈漢緙哄皯鍦╨inux涓嬭繘琛屽疄闄呭ぇ瑙勬ā紼嬪簭鐨勫紑鍙戠粡楠岋紝瀵瑰緢澶氬伐鍏峰拰鏈哄埗鐨勭悊瑙h繕姣旇緝鑲ゆ祬銆傚瀹冧滑鐨勭啛鎮夌▼搴︾鐪熸瀹炵敤錛岃繕鏈変竴孌靛緢闀跨殑璺璧般?br>鎴戜箣鍓嶆槸涓涓狢紼嬪簭鍛橈紝鑰屼笖鏄釜Windows鐨勭▼搴忓憳錛屽湪windows涓嬩嬌鐢╒C6.</span><span style="color: #000000; ">0</span><span style="color: #000000; ">/</span><span style="color: #000000; ">VS2005絳塵icrosoft鐨勫偦鐡滃紡宸ュ叿宸ヤ綔錛?nbsp;瀵逛簬閭d釜vc </span><span style="color: #000000; ">6.0</span><span style="color: #000000; ">/</span><span style="color: #000000; ">vs2005鐨勫揩鎹鋒搷浣滐紝debug鎿嶄綔鏄偅涔堢殑鐔熸倝錛屽彲浠ヨvc </span><span style="color: #000000; ">6.0</span><span style="color: #000000; ">/</span><span style="color: #000000; ">vs2005鏄痺indow涓嬪紑鍙慶</span><span style="color: #000000; ">/</span><span style="color: #000000; ">c</span><span style="color: #000000; ">++</span><span style="color: #000000; ">鏈濂界敤鐨勫伐鍏蜂簡錛屽彲浠ユ煡鐪嬭皟鐢ㄥ爢鏍堬紝鍐呭瓨鍙樺寲鎯呭喌錛屽彉閲忓鹼紝鍙﹀瀹夎 visual assist x鍚庤VC鐪嬭搗鏉ユ槸閭d箞鐨勫畬緹庛?br>浣嗘槸windows涓嬪啓鎴愪唬鐮佸埌浜唋inux涓嬫槸鏈夐棶棰樼殑錛屾墍浠ュ緩璁湪vc涓皢宸ュ叿</span><span style="color: #000000; ">-</span><span style="color: #000000; ">銆嬮夐」鈥斻嬪埗琛ㄧ鈥斻嬪埗琛ㄧ澶у皬4錛屾彃鍏ョ┖鏍鹼紝鍙﹀鐨勯棶棰樺氨鏄?nbsp;閭d釜鍥炶濺鎹㈣鐨勯棶棰橈紝渚嬪windows涓嬫槸0d,0a錛屽埌浜唋inux涓嬬敤vi鐪嬪埌鐨勯兘鏄?/span><span style="color: #000000; ">^</span><span style="color: #000000; ">M錛岀粰鍒漢甯︽潵涓嶄究錛屾墍浠ュ鏋滄彁浜ょ殑鏈嶅姟鍣ㄦ槸linux錛岃?nbsp;浣犳槸鍦╳indows涓嬪紑鍙戯紝鍙互鍦╯vn</span><span style="color: #000000; ">/</span><span style="color: #000000; ">cvs涓繘琛岃緗紝灝卞彲浠ヨ嚜鍔ㄨ繘琛宒os2unix鐨勮漿鎹紝鐩稿叧鐨勬枃妗e彲浠ユ煡鐪媠vn</span><span style="color: #000000; ">/</span><span style="color: #000000; ">cvs鐨勭浉鍏蟲墜鍐岋紝鍏?nbsp;涓兘鏈夎繖鏍風殑璁劇疆銆?br>鏈夊垢榪欐鎴戣漿鍒頒簡Linux涓嬪紑鍙戯紝鏈夊垢璁よ瘑浜唋inux錛屼絾鏄殢涔嬭屾潵鐨勫氨鏄壒鍒ご鐤肩殑闂錛歀inux涓嬩嬌鐢ㄤ粈涔堝伐鍏瘋繘琛岀紪鐮侊紝緙栬瘧錛?nbsp;debug鍛紵錛熸垜鎰熷埌闈炲父鐨勮糠鑼紝鐒跺悗灝辨槸緗戜笂澶ф悳绱紝鐪嬪埌閭d箞澶氱殑緗戝弸鎺ㄨ崘VIM鏃訛紝鎴戝け鏈涗簡錛岀壒鍒殑澶辨湜錛岀劧鍚庣敤VIM鏁蹭簡涓涓笅鍗堬紝绱殑鎵嬬殑楹?nbsp;浜嗭紝鎰熷埌鐗瑰埆鐨勪笉鐖斤紝灝卞儚鏄敤宸︽墜鎷跨瀛愪竴鏍鳳紝鍏ㄨ韓鐨勫姏閲忔棤娉曟柦灞曪紝鎵浠?nbsp;鎴戣繕鏄鍒掑啀鎵炬壘鐪嬨備笉榪囧悗鏉ユ垜榪樻槸鎵懼埌浜嗛傚悎鑷繁鐨勫伐鍏楓傚懙鍛碉紝鐪熸槸澶珮鍏翠簡錛屼粖澶╂妸鎴戣嚜宸辮繖鍑犲ぉ鎼滈泦鐨勪竴浜涜祫鏂欐暣鐞嗕竴涓嬶紝緇欎互鍚庤漿鍚憀inux鐨勭▼搴?nbsp;鍛樹竴鐐規彁紺哄惂</span><span style="color: #000000; ">!</span><span style="color: #000000; "><br>涓昏鐨勫伐鍏峰涓嬶細<br></span><span style="color: #000000; ">1</span><span style="color: #000000; ">. vim </span><span style="color: #000000; ">+</span><span style="color: #000000; "> ctags </span><span style="color: #000000; ">+</span><span style="color: #000000; "> taglist </span><span style="color: #000000; ">+</span><span style="color: #000000; "> cscope </span><span style="color: #000000; ">+</span><span style="color: #000000; "> cppcomplete </span><span style="color: #000000; ">+</span><span style="color: #000000; "> global<br>榪欎釜鎴戜篃璇曡繃浜嗭紝姣旇緝鏈夌敤鐨勫笘瀛愬涓嬶細<br>http:</span><span style="color: #008000; ">//</span><span style="color: #008000; ">www.linuxsir.org/bbs/showthread.php?t=241578</span><span style="color: #008000; "><br></span><span style="color: #000000; ">http:</span><span style="color: #008000; ">//</span><span style="color: #008000; ">blog.csdn.net/wooin/archive/2007/10/31/1858917.aspx</span><span style="color: #008000; "><br></span><span style="color: #000000; ">浣嗘槸榪欎釜瑕佽澶ч噺鐨勫懡浠わ紝涓嶈繃榪樺ソ錛岃繖浜涘懡浠ゆ湁涓や笁澶╁氨鍙互璁頒綇浜嗭紝<br>鎴戣繖閲屾湁涓畝鍗曠殑鍐屽瓙錛?br></span><span style="color: #000000; ">2</span><span style="color: #000000; ">銆佹枃鏈殑鎿嶄綔<br></span><span style="color: #000000; ">~</span><span style="color: #000000; "><br>:e</span><span style="color: #000000; ">!</span><span style="color: #000000; "> file1 鍦ㄥ綋鍓嶆枃浠朵笅緙栬緫鏂扮殑鏂囦歡<br>:r </span><span style="color: #000000; ">/</span><span style="color: #000000; ">etc</span><span style="color: #000000; ">/</span><span style="color: #000000; ">passwd 瀹炵幇鏂囦歡鐨勮鍏ュ姛鑳?br>:wq 淇濇寔騫墮鍑?br>:q</span><span style="color: #000000; ">!</span><span style="color: #000000; "> 寮鴻閫鍑?br>O 錛氶噸璧蜂竴琛?br>U錛氭挙閿 錛?nbsp;C</span><span style="color: #000000; ">-</span><span style="color: #000000; ">R 錛氶噸鍋?br>dd 鍒犻櫎涓琛?nbsp;d$鍒犻櫎琛屽悗鐨?br>e:縐誨姩鍗曡瘝 ge </span><span style="color: #000000; ">?</span><span style="color: #000000; ">鈥?#8211; –à e<br></span><span style="color: #000000; ">%</span><span style="color: #000000; ">:鎷彿鍖歸厤<br>33G錛氳煩鍒?3琛?br>gg :璺沖埌絎竴琛?br>C</span><span style="color: #000000; ">-</span><span style="color: #000000; ">O </span><span style="color: #000000; ">/</span><span style="color: #000000; ">C</span><span style="color: #000000; ">-</span><span style="color: #000000; ">I鏉ュ洖璺寵漿<br>H –HOME L –last<br>ma :瀹氫箟鏍囩 a錛?#8216;a:鍥炲埌a<br>C</span><span style="color: #000000; ">-</span><span style="color: #000000; ">V鏂囨湰鍧楁搷浣?br></span><span style="color: #000000; ">/</span><span style="color: #000000; ">\<br>yy :澶嶅埗涓琛岋紝p:綺樿創<br></span><span style="color: #000000; ">^</span><span style="color: #000000; "> 灝嗗厜鏍囧揩閫熻煩杞埌鏈鐨勯琛屽瓧絎?br>$ 灝嗗厜鏍囧揩閫熻煩杞埌鏈鐨勮灝懼瓧絎?br>:m,ny 澶嶅埗絎琺琛屽埌絎琻琛屼箣闂寸殑鏂囨湰鍒癡I緙撳啿鍖?br><br></span><span style="color: #000000; ">5.3</span><span style="color: #000000; ">銆佹浛鎹㈡搷浣?br>:s</span><span style="color: #000000; ">/</span><span style="color: #000000; ">old</span><span style="color: #000000; ">/</span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> 鏇挎崲褰撳墠琛岀殑絎竴涓瓧絎ld涓哄瓧絎ew<br>:s</span><span style="color: #000000; ">/</span><span style="color: #000000; ">old</span><span style="color: #000000; ">/</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">/</span><span style="color: #000000; ">g 鏇挎崲褰撳墠琛岀殑鎵鏈夊瓧絎ld涓哄瓧絎ew<br>:m,ns</span><span style="color: #000000; ">/</span><span style="color: #000000; ">old</span><span style="color: #000000; ">/</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">/</span><span style="color: #000000; ">g 鏇挎崲褰撳墠琛屽彿m鍒拌鍙穘鐨勬墍鏈夊瓧絎ld涓哄瓧絎ew<br>:</span><span style="color: #000000; ">%</span><span style="color: #000000; ">s</span><span style="color: #000000; ">/</span><span style="color: #000000; ">old</span><span style="color: #000000; ">/</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">/</span><span style="color: #000000; ">g 鏇挎崲鏁翠釜鏂囨湰鐨勬墍鏈夊瓧絎ld涓哄瓧絎ew<br><br></span><span style="color: #000000; ">5.7</span><span style="color: #000000; ">銆佷嬌鐢ㄦ浛鎹㈢殑紜鍔熻兘<br>:s</span><span style="color: #000000; ">/</span><span style="color: #000000; ">old</span><span style="color: #000000; ">/</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">/</span><span style="color: #000000; ">c 鏇挎崲褰撳墠琛岀殑絎竴涓瓧絎ld涓哄瓧絎ew騫舵彁紺虹敤鎴風‘璁ゆ搷浣?br>:s</span><span style="color: #000000; ">/</span><span style="color: #000000; ">old</span><span style="color: #000000; ">/</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">/</span><span style="color: #000000; ">gc 鏇挎崲褰撳墠琛岀殑鎵鏈夊瓧絎ld涓哄瓧絎ew騫舵彁紺虹敤鎴風‘璁ゆ搷浣?br>:m,ns</span><span style="color: #000000; ">/</span><span style="color: #000000; ">old</span><span style="color: #000000; ">/</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">/</span><span style="color: #000000; ">gc 鏇挎崲褰撳墠琛屽彿m鍒拌鍙穘鐨勬墍鏈夊瓧絎ld涓哄瓧絎ew騫舵彁紺虹敤鎴風‘璁ゆ搷浣?br>:</span><span style="color: #000000; ">%</span><span style="color: #000000; ">s</span><span style="color: #000000; ">/</span><span style="color: #000000; ">old</span><span style="color: #000000; ">/</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">/</span><span style="color: #000000; ">gc 鏇挎崲鏁翠釜鏂囨湰鐨勬墍鏈夊瓧絎ld涓哄瓧絎ew騫舵彁紺虹敤鎴風‘璁ゆ搷浣?br>錛歟dit foo.txt 鈥旂紪杈戝彟涓涓枃妗?br>錛歯ext 榪涜鏂囦歡鍒囨崲<br>C</span><span style="color: #000000; ">-</span><span style="color: #000000; ">W 鍒囨崲紿楀彛<br>vimdiff main.c</span><span style="color: #000000; ">~</span><span style="color: #000000; "> main.c<br>:g</span><span style="color: #000000; ">+</span><span style="color: #008000; ">//</span><span style="color: #008000; ">+s/foobar/barfoo/g</span><span style="color: #008000; "><br></span><span style="color: #000000; ">CTags:<br>Ctags –R</span><span style="color: #000000; ">/</span><span style="color: #000000; ">ctags </span><span style="color: #000000; ">*</span><span style="color: #000000; "><br>:</span><span style="color: #0000FF; ">set</span><span style="color: #000000; "> tags </span><span style="color: #000000; ">=/</span><span style="color: #000000; ">..</span><span style="color: #000000; ">/</span><span style="color: #000000; ">tags<br>錛歍list<br>F3鏌ユ壘<br>錛歮ake<br>:cw :cn :cp<br>mm 鏍囩錛孎2 鍒囨崲<br>cscope –Rbq<br>:cs add </span><span style="color: #000000; ">/</span><span style="color: #000000; ">..</span><span style="color: #000000; ">/</span><span style="color: #000000; ">cscope.</span><span style="color: #0000FF; ">out</span><span style="color: #000000; "> </span><span style="color: #000000; ">/</span><span style="color: #000000; ">..</span><span style="color: #000000; ">/</span><span style="color: #000000; "><br>:cs find g xxx<br>:cs find c vim_strsave<br>:cw<br>鎸塼ab閿嚜鍔ㄨˉ鍏ㄣ?br>緙虹偣鏄細 鑷姩琛ュ叏鍔熻兘楹葷儲錛屽繀欏誨厛寤虹珛ctags錛屽啓浠g爜榪樻槸寰堢瘡錛屾垜鍐欎簡涓涓嬪崍錛屽啓鐨勬墜閮介夯浜嗐傚嚭閿欐鏌?nbsp;鍟婏紝鎷彿鑷姩鍖歸厤鍟婏紝<br>鍗曡瘝琛ュ叏鍔熻兘鍟婏紝閮戒笉婊℃剰錛屽彟澶栧C</span><span style="color: #000000; ">++</span><span style="color: #000000; ">鐨勬敮鎸佷笉濂姐?br>姣斿鎴戝垰鍐欎簡2涓猚onfig.h,config.cpp錛岃繖2涓枃浠?br>娌℃湁榪涜CTAG,CSCOPE鎿嶄綔錛屽氨涓嶈兘鍗曡瘝琛ュ叏錛屾嫭鍙峰尮閰嶄笉鑳芥嫻嬶紝涓嶇煡閬撴槸鎴戦厤緗湁闂榪樻槸鎬庝箞鍥炰簨鍟娿?br>鍙﹀涓嶈兘榪涜DEBUG,鎵浠ユ垜鍙兘鏀懼純銆?br></span><span style="color: #000000; ">2</span><span style="color: #000000; ">.emacs</span><span style="color: #000000; ">+</span><span style="color: #000000; ">鎻掍歡<br>鍙互鏌ョ湅<br>http:</span><span style="color: #008000; ">//</span><span style="color: #008000; ">blog.163.com/yu_hongchang/blog/static/3989413820081121512613/</span><span style="color: #008000; "><br></span><span style="color: #000000; ">榪欎釜鎴戞病鏈夎瘯楠岋紝浼拌鍜寁im涓鏍鳳紝閮芥槸鍛戒護鎿嶄綔錛屽惉璇磋繖涓姛鑳藉己澶т竴浜涳紝鑳藉閫氳繃xterm榪涜璋冭瘯錛岃繖涓垜涔嬪墠鐢ㄨ繃錛屼絾鏄偅涓獂term鐪熺殑涓嶆庝箞濂界敤錛岀晫闈紝榧犳爣錛屾垜閮戒笉鍠滄銆?br></span><span style="color: #000000; ">3</span><span style="color: #000000; ">. kdevelop<br>榪欎釜宸ュ叿鍋氱殑姣旇緝宸姴鍚э紝鎴戜篃涓嶅枩嬈紝姣斿浠栫殑鑷姩琛ュ叏鍔熻兘寰堜笉鐖斤紝姣斿錛氭湁涓嚱鏁?br>Int test(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> c1,</span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> c2)<br>褰撴垜浠暡涓?nbsp;tes鏃訛紝鍙兘鍑虹幇test錛岃屽悗闈㈢殑鍙傛暟鍒楄〃閮戒笉鑳芥樉紺猴紝鎵浠ュ綋浠g爜閲忔瘮杈冨ぇ錛屽嚱鏁板弬鏁版瘮杈冨鐨勬椂鍊欙紝鎴戜滑閮借涓嶄綇鍙傛暟錛屾病鏈夊弬鏁板垪琛ㄦ彁紺猴紝灝變細瑙夊緱寰堜笉鐖姐備笉榪囪繕濂斤紝瀹冮泦鎴愪簡kgdb鍙互榪涜debug.<br></span><span style="color: #000000; ">4</span><span style="color: #000000; ">.eclipse </span><span style="color: #000000; ">+</span><span style="color: #000000; ">cdt<br>濂藉浜虹敤榪欎釜IDE錛岃繕綆楀ソ鍚э紝浣嗘槸eclipse鏄釜java鐨勶紝榪愯閫熷害鎱㈢殑寰堬紝鍙﹀鍗曡瘝琛ュ叏鍔熻兘澶樊鍔蹭簡錛屽彧鑳借ˉ鍏ㄧ粨鏋勪綋鎴栬呯被錛屽湪鍐欎笅.</span><span style="color: #000000; ">/</span><span style="color: #000000; "> </span><span style="color: #000000; ">-></span><span style="color: #000000; ">涔嬪悗鎵嶈兘琛ュ叏錛屽彟澶栬鎸?nbsp;control</span><span style="color: #000000; ">+/</span><span style="color: #000000; "> 鎵嶈兘琛ュ叏錛屼笉鑳藉湪鏁蹭唬鐮佺殑鍚屾椂鑷姩鏄劇ず錛宔clipse瀵筩</span><span style="color: #000000; ">/</span><span style="color: #000000; ">c</span><span style="color: #000000; ">++</span><span style="color: #000000; ">鐨勬敮鎸佽繙榪滀笉濡傚JAVA鐨勬敮鎸佸己澶э紝浣嗘槸鎴戣嚦灝戣涓烘瘮鍦╲im涓啓瑕佽垝鏈嶄竴浜涳紝鍙兘 鏄釜浜轟範鎯簡閭d釜IDE鐨勫伐浣滅幆澧冦?br></span><span style="color: #000000; ">5</span><span style="color: #000000; ">.code::blocks<br>鍙互鏌ョ湅錛?br>http:</span><span style="color: #008000; ">//</span><span style="color: #008000; ">www.codeblocks.org/</span><span style="color: #008000; "><br></span><span style="color: #000000; ">鏀寔鐨勫鉤鍙頒笉鍏紝鎴戠殑鏄痳edhat 浼佷笟鐗?nbsp;</span><span style="color: #000000; ">5.0</span><span style="color: #000000; ">錛屽氨瀹夎涓嶄笂錛屾墍浠ユ垜涔熸病鏈夎兘澶熶竴鐫瑰畠鐨勮姵瀹癸紝鍙儨鍟娿?br></span><span style="color: #000000; ">6</span><span style="color: #000000; ">. anjuta<br>榪欎釜鎴戜笅杞戒簡瀹夎涓嶄笂錛屼笉鐭ラ亾涓轟粈涔堬紝鑰屼笖瑕佹眰閰嶇疆鐨勬瘮杈冨錛屼篃姣旇緝楹葷儲錛屽鏋滀綘鎰熷叴瓚o紝鍙互鐪?br>http:</span><span style="color: #008000; ">//</span><span style="color: #008000; ">hi.baidu.com/my2008space/blog/item/140de5255fab81084c088d1e.html</span><span style="color: #008000; "><br></span><span style="color: #000000; ">7</span><span style="color: #000000; ">. Kylix<br>榪欎釜娌℃湁璇曘?br></span><span style="color: #000000; ">8</span><span style="color: #000000; ">.netbeans<br>榪欎釜涔熶笉閿欙紝鎴戣榪囪瘯浜嗚瘯錛岃兘婊¤凍鎴戠殑鍔熻兘錛屼絾鏄彲瀹氬埗紼嶅井宸偣錛屼絾鏄兘婊¤凍闇瑕佷簡錛屼篃榪樹笉閿欏惂錛屽鏋滄病鏈変笅闈㈣鎻愬埌鐨剆lick edit,鎴戝氨浼氶夋嫨瀹冧簡銆?br></span><span style="color: #000000; ">9</span><span style="color: #000000; ">.windows ue</span><span style="color: #000000; ">+</span><span style="color: #000000; ">ssh<br>鏈夊緢澶氱殑浜虹敤榪欎釜鏂規硶錛屾垜涓嶅お鍠滄錛屽彲鑳芥槸涓嶅枩嬈e閭d釜鐣岄潰鍚э紝搴旇鍜寁im涔嬬被鐨勭被浼箋?br></span><span style="color: #000000; ">10</span><span style="color: #000000; ">.slick edit<br>鍛靛懙錛屾垜鏈緇堥夋嫨鐨勬槸榪欎釜錛屽緢濂界敤錛屽彲瀹氬埗鎬у己錛屾敮鎸佺殑璇█澶氾紝闈炲父鐨勫ソ鐢紝鑳藉鐩存帴榪涜debug,鑰屼笖閫熷害涔熷緢蹇紝鐣岄潰鍜寁c </span><span style="color: #000000; ">6</span><span style="color: #000000; ">.0寰堢浉浼鹼紝鏄竴涓敮涓鍙互鍜?nbsp;vc 鐩稿緹庣殑宸ュ叿錛屼絾涓嶆槸鍏嶈垂鐨勶紝涓嶈繃榪樻槸瑕佹劅璋㈤偅浜涚殑榛戝錛岃榪欎釜杞歡寰楀埌浜嗙牬瑙o紝<br>浣犲彲浠ラ氳繃涓嬮潰鐨勯摼鎺ヤ笅杞斤細<br>http:</span><span style="color: #008000; ">//</span><span style="color: #008000; ">www.slickedit.com/content/view/409/239/</span><span style="color: #008000; "><br></span><span style="color: #000000; ">涓嬭澆SlickEdit v14.</span><span style="color: #000000; ">0.2</span><span style="color: #000000; ">.</span><span style="color: #000000; ">2</span><span style="color: #000000; "><br>鐒跺悗鍒癶ttp:</span><span style="color: #008000; ">//</span><span style="color: #008000; ">download.csdn.net/source/1481066</span><span style="color: #008000; "><br></span><span style="color: #000000; ">鍘諱笅杞界牬瑙g殑鏂囦歡錛岀劧鍚庤鐩栧氨鍙互浜嗐?br>榪欎釜宸ュ叿闈炲父鐨勫ソ鐢ㄥ晩錛屽ぇ瀹跺彲浠ヨ瘯涓璇曞晩錛?br>榪欎釜宸ュ叿鏈濂界殑鍦版柟灝辨槸鍙互鏌ョ湅memory鐨勬儏鍐碉紝榪欑偣鎴戝枩嬈€傚懙鍛?br></span><span style="color: #000000; ">11</span><span style="color: #000000; ">.緙栬瘧宸ュ叿鍜孌EBUG宸ュ叿<br>涓昏鐨勭紪璇戝伐鍏烽兘鏄痝cc錛屽綋浠g爜閲忓ぇ鐨勬椂鍊欏氨瑕佸啓makefile浜嗭紝鍙﹀鐨勮皟璇曞伐鍏蜂富瑕侀兘鏄痝db錛岃繖浜涘彲瑙嗗寲鐨処DE鍩烘湰閮芥槸鍖呰浜唃cc, gdb銆傛墍浠lickedit瀵逛簬鎴戣繖縐嶅垰杞埌Linux,瀵筸akefile涓嶇啛鎮夌殑浜烘潵璇存棤鐤戞槸涓鏍規晳鍛界殑紼昏崏錛岃兘璁╂垜寰堝揩鐨勮繘鍏ュ伐浣滅姸鎬侊紝褰撶劧錛?nbsp;浣犲彧鏄妸瀹冨綋鎴愮紪杈戠殑宸ュ叿錛屼篃浼氬彂鐜板畠鑳藉ぇ澶х緝灝忎綘緙栫爜鐨勬椂闂達紝璁╀綘鐨勬墜涓嶄細鍥犱負鍐欎唬鐮佽屾劅鍒扮柌鎯?br>緇堜簬灝樺焹钀藉畾錛屼互鍚庢垜瑕佺敤slickedit鏉ュ紑濮嬫垜鐨凩inux涔嬫梾浜嗐?br></span><span style="color: #000000; ">1</span><span style="color: #000000; ">. c</span><span style="color: #000000; ">/</span><span style="color: #000000; ">c</span><span style="color: #000000; ">++</span><span style="color: #000000; ">緙栬瘧鍣?nbsp;gcc</span><span style="color: #000000; ">/</span><span style="color: #000000; ">g</span><span style="color: #000000; ">++</span><span style="color: #000000; ">    <br>璇︽儏璇峰弬鑰冪綉绔?http:</span><span style="color: #008000; ">//</span><span style="color: #008000; ">gcc.gnu.org/</span><span style="color: #008000; "><br></span><span style="color: #000000; ">2</span><span style="color: #000000; ">. UML寤烘ā宸ュ叿 Bouml<br>linux涓嬫瘮杈冨ソ鐢ㄧ殑寤烘ā宸ュ叿錛岀浉褰撲簬windows涓嬬殑rational rose錛屽叿鎴愪簡紼嬪簭UML妯″瀷璁捐錛屼唬鐮佺紪杈戯紝浠g爜鐢熸垚鍔熻兘絳夊姛鑳?<br>璇︽儏璇峰弬鑰冪綉绔欙細http:</span><span style="color: #008000; ">//</span><span style="color: #008000; ">bouml.free.fr/</span><span style="color: #008000; "><br></span><span style="color: #000000; ">3</span><span style="color: #000000; ">. makefile鏂囦歡緙栧啓宸ュ叿 錛歛utoconf,automake<br>鏃犺鏄湪Linux榪樻槸鍦║nix鐜涓紝make閮芥槸涓涓潪甯擱噸瑕佺殑緙栬瘧鍛戒護銆備笉綆℃槸鑷繁榪涜欏圭洰寮鍙戣繕鏄畨瑁呭簲鐢ㄨ蔣浠訛紝<br>鎴戜滑閮界粡甯歌鐢ㄥ埌make鎴?nbsp;make install銆傚埄鐢╩ake宸ュ叿錛屾垜浠彲浠ュ皢澶у瀷鐨勫紑鍙戦」鐩垎瑙f垚涓哄涓洿鏄撲簬綆$悊鐨勬ā鍧楋紝<br>瀵逛簬涓涓寘鎷嚑鐧句釜婧愭枃浠剁殑搴旂敤紼嬪簭錛屼絾鏄鏋滈氳繃鏌ラ槄make鐨勫府鍔╂枃妗f潵鎵嬪伐緙栧啓Makefile,瀵逛換浣曠▼搴忓憳閮芥槸涓鍦烘寫鎴樸?br>騫歌屾湁GNU 鎻愪緵鐨凙utoconf鍙夾utomake榪欎袱濂楀伐鍏蜂嬌寰楃紪鍐檓akefile涓嶅啀鏄竴涓毦棰?br>浣跨敤make鍜?nbsp;makefile宸ュ叿灝卞彲浠ヨ交鑰屾槗涓劇殑鐞嗛『鍚勪釜婧愭枃浠朵箣闂寸悍綣佸鏉傜殑鐩鎬簰鍏崇郴,autoconf,automake涓鑸厤鍚坙ibtool浣跨敤銆?br>璇︽儏璇峰弬鑰冪綉绔欙細<br>http:</span><span style="color: #008000; ">//</span><span style="color: #008000; ">www.ibm.com/developerworks/cn/linux/l-makefile/</span><span style="color: #008000; "><br></span><span style="color: #000000; ">http:</span><span style="color: #008000; ">//</span><span style="color: #008000; ">www.gnu.org/software/autoconf/</span><span style="color: #008000; "><br></span><span style="color: #000000; ">http:</span><span style="color: #008000; ">//</span><span style="color: #008000; ">www.gnu.org/software/automake/</span><span style="color: #008000; "><br></span><span style="color: #000000; ">http:</span><span style="color: #008000; ">//</span><span style="color: #008000; ">www.gnu.org/software/libtool/</span><span style="color: #008000; "><br></span><span style="color: #000000; ">4</span><span style="color: #000000; ">. 璋冭瘯宸ュ叿錛歡db<br>鍦╳indow涓嬬紪紼嬶紝璋冭瘯宸ュ叿宸茬粡鍏鋒垚鍒癡S鐜錛屽湪linux</span><span style="color: #000000; ">/</span><span style="color: #000000; ">Unix涓嬭皟璇曞垯閫氳繃gdb鏉ヨ皟璇曪紝涓漢瑙夊緱gdb璋冭瘯姣攙s璋冭瘯楂樻晥寰堝銆?br>璇︽儏璇峰弬鑰冪綉绔欙細http:</span><span style="color: #008000; ">//</span><span style="color: #008000; ">www.gnu.org/software/gdb/</span><span style="color: #008000; "><br></span><span style="color: #000000; ">5</span><span style="color: #000000; ">. 鍐呭瓨娉勬紡宸ュ叿錛歷algrind<br>瀵逛簬鍔ㄥ垯鎴愬崈涓婁竾琛岀殑浠g爜錛屽緢闅鵑氳繃鎵嬪伐鐨勬柟寮忓幓淇濊瘉鍐呭瓨娌℃湁娉勬紡錛?br>valgrind閫氳繃鍐呭瓨鐢寵銆侀噴鏀懼尮閰嶇殑鍘熷垯鏉ユ嫻嬪唴瀛樻硠婕忥紝鍐呭瓨瓚婄晫鐨凚UG銆傚綋鐒訛紝鑹ソ鐨勭紪紼嬩範鎯篃鏄繚璇佷唬鐮佽川閲忛珮鏁堝繀涓嶅彲灝戠殑鏉′歡銆?br>鍙傝冪綉绔欙細http:</span><span style="color: #008000; ">//</span><span style="color: #008000; ">valgrind.org/</span><span style="color: #008000; "><br></span><span style="color: #000000; ">6</span><span style="color: #000000; ">. 婧愪唬鐮佺鐞嗗伐鍏鳳細svn<br>杞歡寮鍙戜笉鍐嶆槸涓漢澶у笀鐨勫勾浠o紝閮芥槸浠ュ洟闃熺殑鏂瑰紡鏉ュ紑鍙戯紝濡備綍淇濊瘉浠g爜鐨勫悓姝ワ紝鍗忓悓寮鍙戯紝svn緇欐垜浠彁浜嗗緢濂界殑甯姪銆?br>璇︽儏璇峰弬鑰冪綉绔欙細http:</span><span style="color: #008000; ">//</span><span style="color: #008000; ">svncorp.org/</span><span style="color: #008000; "><br></span><span style="color: #000000; ">7</span><span style="color: #000000; ">. 緗戠粶鍗忚鍒嗘瀽宸ュ叿錛歸ireshark<br>緙栧啓緗戠粶紼嬪簭錛屽氨涓嶅彲閬垮厤瑕佸鐞嗙綉緇滃崗璁?鍒嗘瀽緗戠粶鏁版嵁.wireshark鎻愪緵浜嗗叧浜庣綉緇滃眰鍜屼笂灞傚崗璁殑鍚勭淇℃伅銆?br>鍛戒護琛屼笅鍒嗘瀽緗戠粶鍗忚鍙互浣跨敤tcpdump.</span></div><img src ="http://m.shnenglu.com/singohgod/aggbug/145950.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/singohgod/" target="_blank">澶у疂澶╁ぉ瑙?/a> 2011-05-08 15:18 <a href="http://m.shnenglu.com/singohgod/archive/2011/05/08/145950.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>[杞澆]浠嶹indows杞埌Linux涓婥++緙栫▼鐨勮繃紼?/title><link>http://m.shnenglu.com/singohgod/archive/2011/02/18/140249.html</link><dc:creator>澶у疂澶╁ぉ瑙?/dc:creator><author>澶у疂澶╁ぉ瑙?/author><pubDate>Fri, 18 Feb 2011 02:09:00 GMT</pubDate><guid>http://m.shnenglu.com/singohgod/archive/2011/02/18/140249.html</guid><wfw:comment>http://m.shnenglu.com/singohgod/comments/140249.html</wfw:comment><comments>http://m.shnenglu.com/singohgod/archive/2011/02/18/140249.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/singohgod/comments/commentRss/140249.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/singohgod/services/trackbacks/140249.html</trackback:ping><description><![CDATA[<div class="hvzpftn" id=content> <p>瀛︿範Unix甯哥敤鐨勫懡浠?ls,ll,cd,su,mkdir,cp,mv,rm -rf,Vim鎿嶄綔錛屽畨瑁匔Tags錛孴List鎻掍歡銆?/p> <p>瀛︿範MakeFile鏂囦歡銆?/p> <p>鐗瑰埆娉ㄦ剰褰撳墠紼嬪簭闇瑕佸摢浜?h鏂囦歡錛屽摢浜沴ib鏂囦歡銆傞渶瑕佺紪璇戞垚浠涔堟枃浠躲傛敞鎰忕紪璇戠殑璺緞灝卞ソ浜嗐?/p> <p>Svn鎿嶄綔銆備笂浼狅紝涓嬭澆錛屾洿鏂般?/p> <p>涓昏鏄痵vn co錛屼笅杞?/p> <p>svn add 娣誨姞鏂囦歡鎴栬呮枃浠跺す<!--iwms_ad_begin--> <table border=0 width="97%" align=center> <tbody> <tr> <td colSpan=3> <div align=center> <script language=javaScript type=text/javascript src="../../system/system60.js"></script> </div> </td> </tr> </tbody> </table> <!--iwms_ad_end--></p> <p>svn info 鏌ョ湅淇℃伅</p> <p>svn ci 鎻愪氦淇敼</p> <p>svn up 涓嬭澆淇℃伅銆?/p> <p>SecureCRT錛宲utty銆?/p> <p>lcd 鍙樻洿鏈湴璺緞銆俻ut 涓婁紶錛実et 涓嬭澆銆?/p> <p>shell鑴氭湰錛宻ed錛宲ython</p> </div> <br> <img src ="http://m.shnenglu.com/singohgod/aggbug/140249.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/singohgod/" target="_blank">澶у疂澶╁ぉ瑙?/a> 2011-02-18 10:09 <a href="http://m.shnenglu.com/singohgod/archive/2011/02/18/140249.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>[鎽樺綍]Linux c++ 緙栫▼璇劇▼http://m.shnenglu.com/singohgod/archive/2011/02/16/140182.html澶у疂澶╁ぉ瑙?/dc:creator>澶у疂澶╁ぉ瑙?/author>Wed, 16 Feb 2011 11:43:00 GMThttp://m.shnenglu.com/singohgod/archive/2011/02/16/140182.htmlhttp://m.shnenglu.com/singohgod/comments/140182.htmlhttp://m.shnenglu.com/singohgod/archive/2011/02/16/140182.html#Feedback0http://m.shnenglu.com/singohgod/comments/commentRss/140182.htmlhttp://m.shnenglu.com/singohgod/services/trackbacks/140182.html
涓銆丩inux鎿嶄綔緋葷粺

    * 緋葷粺鐜錛歎buntu GNU/Linux銆丷edHat Linux AS5銆丗reeBSD
    * 璇劇▼瑕佹眰錛氱啛緇冧嬌鐢ㄥ父鐢ㄧ殑Linux/UNIX鍛戒護銆?
    * 鏃墮棿錛?鍛ㄣ?

浜屻丩inux C++寮鍙戠幆澧冩惌寤恒佸紑鍙戝伐鍏風殑浣跨敤

    * 娑夊強鍐呭錛歷i銆丟CC銆丟DB銆丮ake銆丆VS銆丼ubversion銆丒clipse CDT
    * 璇劇▼瑕佹眰錛?
          o 鐔熺粌浣跨敤vi鏂囨湰緙栬緫鍣紱
          o 鐔熺粌浣跨敤GCC宸ュ叿閾捐繘琛岀紪璇戙佽皟璇曘佹瀯寤哄彲鎵ц鏂囦歡鎴栧叡浜簱/闈欐佸簱錛?
          o 鐔熺粌緙栧啓Makefile錛?
          o 鐔熺粌閰嶇疆銆佷嬌鐢–VS鍜孲ubversion涓ょ鐗堟湰鎺у埗宸ュ叿錛?
          o 鐔熺粌閰嶇疆銆佷嬌鐢‥clipse CDT寮鍙戝伐鍏楓?
    * 鏃墮棿錛?鍛?

涓夈丆++璇█

        C++鏄竴闂ㄥ鑼冨瀷緙栫▼璇█錛岀浉瀵逛簬C銆丣ava銆丆#絳塁緋昏璦錛屽鏉傚害楂橈紝浣嗕竴鏃﹂鎮烠++鐨勭簿楂擄紝鍒欒兘鍙戞尌C++璇█鐨勫己澶у▉鍔涳紝涓轟簡璁╁鍛樻帉鎻++璇█緙栫▼鎶鏈紝鎴戜滑灝嗚繖閮ㄥ垎鐨勮紼嬪垎涓轟簲涓儴鍒嗭細

    * 闈㈠悜榪囩▼緙栫▼: Core C++
          o 娑夊強鎶鏈細C++鍩虹錛氱被鍨嬪拰澹版槑銆佹寚閽堜笌鏁扮粍銆佽〃杈懼紡涓庤鍙ャ佸嚱鏁般佸悕瀛楃┖闂淬佸紓甯搞佷唬鐮佹枃浠剁殑緇勭粐
          o 璇劇▼瑕佹眰錛氭帉鎻℃墡瀹炵殑C++鍩虹鐭ヨ瘑銆?
          o 鏃墮棿錛?.5鍛ㄣ?
    * 闈㈠悜瀵硅薄緙栫▼: 灝佽銆佺戶鎵夸笌澶氭侊紙encapsulation銆乮nherit & Polymorphism錛?
          o 娑夊強鎶鏈細綾昏璁°佽繍綆楃閲嶈澆銆佺戶鎵夸笌澶氭併?
          o 璇劇▼瑕佹眰錛氭紜悊瑙i潰鍚戝璞$殑姒傚康錛岀敤闈㈠悜瀵硅薄鐨勬濈淮鍜屾柟娉曟瀯寤鴻蔣浠訛紝姝g‘鍦拌璁″拰浣跨敤綾諱互鍙婄戶鎵夸綋緋匯?
          o 鏃墮棿錛?.5鍛ㄣ?
    * 娉涘瀷緙栫▼: C++妯℃澘錛圱emplate錛?
          o 娑夊強鎶鏈細綾繪ā鏉褲佸嚱鏁版ā鏉褲佸嚱鏁板璞★紙Function object錛夈?
          o 璇劇▼瑕佹眰錛欳++妯℃澘鏄疌++寮哄ぇ濞佸姏鐨勬妧鏈敮鎾戯紝鏄瀯寤篊++鏍囧噯搴撱丅oost綾誨簱銆丄CE妗嗘灦絳夌殑鍩虹錛屽繀欏葷啛緇冩帉鎻++妯℃澘鎶鏈?
          o 鏃墮棿錛?.5鍛ㄣ?
    * 鏁版嵁緇撴瀯涓庣畻娉?
          o 娑夊強鍐呭錛氬父鐢ㄦ暟鎹粨鏋?欏哄簭瀹瑰櫒銆侀摼琛ㄣ佹爲)鍜岀畻娉?鎺掑簭涓庢悳绱?鐨凜++瀹炵幇銆?
          o 璇劇▼瑕佹眰錛氳兘瀹炵幇甯歌鐨勬暟鎹粨鏋勶紙瀹瑰櫒濡倂ector銆乴ist銆乻tatck銆乹ueue絳夛級錛屾帓搴忓拰鎼滅儲綆楁硶銆?
          o 鏃墮棿錛?.5鍛ㄣ?
    * C++鏍囧噯搴撳簲鐢?
          o 娑夊強鎶鏈細鏍囧噯瀹瑰櫒錛圫TL瀹瑰櫒錛夛細vector銆乴ist銆乵ap銆乻et絳夌瓑錛涜凱浠e櫒銆佺畻娉曞簱銆両O嫻併丆璇█鏁板搴撶瓑
          o 璇劇▼瑕佹眰錛氬甯哥敤鐨勯儴鍒嗗瀹瑰櫒銆佽凱浠e櫒銆佸父鐢ㄧ殑綆楁硶銆両O嫻侊紝蹇呴』鐗㈠浐鎺屾彙銆佺啛緇冧嬌鐢紝瀵瑰叾瀹冮儴鍒嗗繀欏繪湁璁よ瘑錛屼互鍏嶆棩鍚庡伐浣滀腑棰戠箒鐨勭紪鍐欐爣鍑嗗簱涓瓨鍦ㄧ殑鍐呭錛岄噸澶嶅埗閫犺疆瀛愩?
          o 鏃墮棿錛?鍛ㄣ?

鍥涖丆++ Boost妯℃澘搴?

        Boost鏄敱C++鏍囧噯濮斿憳浼氭垚鍛樺彂璧楓佷紬澶欳++鐣岄珮鎵嬪弬涓庤璁″茍瀹炵幇鐨勪竴涓秹鍙婇潰騫褲佽川閲忛珮涓斾笟宸插箍娉涗嬌鐢ㄧ殑C++鏍囧噯鍚庡搴擄紝鍏朵腑TR1宸茬粡琚撼鍏++0x鏍囧噯搴撱傝繖閮ㄥ垎鐨勮紼嬪皢娑夊強鍏朵腑涓浜涘父鐢ㄧ殑綾誨簱銆?

    * 娑夊強鎶鏈細Aiso銆乀hread銆両nterprocess銆丼ystem銆丗ile System銆丏ate Time銆丗ormat銆丄rray銆丩ambda銆丼ignals銆乀R1涓殑閮ㄥ垎錛圧egex銆乀uple銆丼mart Point銆丠ash Map銆丠ash Set絳夛級銆?
    * 璇劇▼瑕佹眰錛氬繀欏繪帉鎻$殑綾誨簱鏈夛細Aiso銆乀hread銆丏ate Time浠ュ強TR1涓儴鍒嗗唴瀹廣?
    * 鏃墮棿錛?鍛ㄣ?

浜斻丄CE妗嗘灦

        ACE鏄竴涓騫挎硾浣跨敤銆佽璁′紭闆呫侀珮鎬ц兘鐨凜++閫氫俊妗嗘灦錛堜笉浠呬粎鏄氫俊妗嗘灦錛夛紝鍏惰璁″強瀹炵幇琚紬澶氬紑婧愭鏋舵墍鍊熼壌銆傛槸鏋勫緩紼沖畾銆侀珮鎬ц兘銆侀珮鍚炲悙閲忋佽法騫沖彴鐨勬湇鍔″櫒绔▼搴忕殑浼樼妗嗘灦銆?

    * 娑夊強鎶鏈細ACE Reactor妗嗘灦銆丄CE Proactor妗嗘灦銆丮ultiThread鏀拺銆乀imer錛圫cheduler錛夈丄CE Service Configurator銆?
    * 璇劇▼瑕佹眰錛氫互涓婂垪涓劇殑閮ㄥ垎鏄湇鍔″櫒绔紪紼嬪繀涓嶅彲灝戠殑閮ㄥ垎錛屽潎闇鐔熺粌浣跨敤銆?
    * 鏃墮棿錛?鍛ㄣ?

鍏佹暟鎹簱寮鍙?

        涓撴敞Oracle 10g銆丮ySQL5.0+銆傝繖閮ㄥ垎鐨勮紼嬪垎涓轟互涓嬩笁澶у潡錛?

    * SQL璇█錛?
          o 娑夊強鎶鏈細鏁版嵁鏌ヨ璇█DQL錛屾暟鎹搷綰佃璦DML錛屾暟鎹畾涔夎璦DDL錛屾暟鎹帶鍒惰璦DCL銆?
          o 璇劇▼瑕佹眰錛氱啛緇冧嬌鐢⊿QL璇█銆?
          o 鏃墮棿錛?鍛ㄣ?
    * Oracle鍜孧ySQL瀛樺偍榪囩▼銆佸嚱鏁般佽Е鍙戝櫒
          o 娑夊強鎶鏈細PL/SQL銆?
          o 璇劇▼瑕佹眰錛氱啛緇冪紪鍐橭racle鍜孧ySQL瀛樺偍榪囩▼銆佸嚱鏁般佽Е鍙戝櫒銆?
          o 鏃墮棿錛?鍛ㄣ?
    * C++鏁版嵁搴撳紑鍙?
          o 娑夊強鎶鏈細OTL鎴朌TL錛堜袱涓珮鎬ц兘銆佹槗鐢ㄧ殑C++妯℃澘綾伙紝閽堝鍚勫ぇ涓繪祦鏁版嵁搴撳錛歄racle銆丏B2銆丼qlServer銆丮ySQL絳夛級銆?
          o 璇劇▼瑕佹眰錛氱啛緇冧嬌鐢∣TL鍜孌TL榪涜鏁版嵁搴撶紪紼嬨?
          o 鏃墮棿錛?.5鍛ㄣ?

涓冦佽蔣浠跺伐紼?

        涓涓紭縐鐨勮蔣浠跺伐紼嬪笀涓嶄粎鍏峰浼樼鐨勭紪鐮佽兘鍔涳紝鏇村簲璇ユ嫢鏈変紭縐鐨勮蔣浠惰璁℃濈淮鍜屾柟娉曪紝浠ヤ笅璇劇▼涔熸槸杞╄緯瀛﹀憳蹇呬慨鐨勫唴瀹廣?

    * 娑夊強鎶鏈細鏁版嵁搴撳緩妯°佽蔣浠跺緩妯°丟OF璁捐妯″紡銆佹枃妗g紪鍐?
    * 璇劇▼瑕佹眰錛氭帉鎻℃暟鎹簱寤烘ā銆佽蔣浠跺緩妯$殑鎬濇兂鍜屾柟娉曪紝鐔熺粌浣跨敤寤烘ā宸ュ叿錛屽皾璇曠敤璁捐妯″紡鏉ユ濊冭蔣浠剁殑鏋舵瀯銆傝嚦灝戝浼氱紪鍐欍婅緇嗚璁¤鏄庝功銆嬨併婃瑕佽璁¤鏄庝功銆嬨併婃暟鎹簱璁捐璇存槑涔︺嬨?
    * 鏃墮棿錛?.5鍛ㄣ?

鍏侀」鐩疄鎴?

        杞╄緯鎻愪緵澶氫釜浼佷笟綰у疄鎴橀」鐩緵瀛﹀憳閫夋嫨錛屽錛氱數淇$駭IM Server銆佺數淇$駭Billing Server絳夊熀浜嶶NIX鎴朙inux涓嬬殑楂樿礋鑽楓佸ぇ鍘嬪姏鐨凜++ Server绔」鐩紝鍚屾椂鎻愪緵Client绔▼搴忎互渚胯仈璋冨強嫻嬭瘯銆?

    * 娑夊強鎶鏈細鏈」鐩皢娑夊強瀛︿範闃舵鎵鏈夊唴瀹廣?
    * 欏圭洰瑕佹眰錛氬鍛樻寜鍒嗙粍錛屽垎宸ャ佸崗浣滐紝鍏卞悓瀹屾垚欏圭洰錛屾渶緇堣瘎浼頒袱涓柟闈細杞歡鏋舵瀯璁捐銆佽蔣浠朵唬鐮佸疄鐜拌川閲忋?
    * 鏃墮棿錛?鍛?

]]>
[鎽樺綍]rapidxml,涓涓揩閫熺殑xml搴?/title><link>http://m.shnenglu.com/singohgod/archive/2010/11/15/133685.html</link><dc:creator>澶у疂澶╁ぉ瑙?/dc:creator><author>澶у疂澶╁ぉ瑙?/author><pubDate>Mon, 15 Nov 2010 09:24:00 GMT</pubDate><guid>http://m.shnenglu.com/singohgod/archive/2010/11/15/133685.html</guid><wfw:comment>http://m.shnenglu.com/singohgod/comments/133685.html</wfw:comment><comments>http://m.shnenglu.com/singohgod/archive/2010/11/15/133685.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://m.shnenglu.com/singohgod/comments/commentRss/133685.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/singohgod/services/trackbacks/133685.html</trackback:ping><description><![CDATA[榪戞潵鎵懼埌涓涓揩閫熺殑xml搴?璇曠敤浜嗕竴涓?鏂規硶鍜岀幇鍦ㄤ嬌鐢ㄧ殑tinyxml宸笉澶?寰堝鏄撲笂鎵?濡傛灉鏈夋満浼氬彲浠ョЩ妞嶅埌欏圭洰閲岄潰璇曡瘯<br><br>鑷粠鐢ㄤ簡xml鍚庡浠栨槸鍙堢埍鍙堟仺,浠栫殑紜兘浠f浛閰嶇疆鏂囦歡,浣嗘槸褰撴枃浠跺閲忓ぇ鍒頒竴瀹氶噺鐨勬椂鍊欑伨闅懼氨闄嶄復浜?姣斿璇誨彇涓涓?0M鐨剎ml鏂囦歡,寰寰璇誨彇鑺變笂10縐?瑙f瀽鍐嶈姳涓?0縐?榪樿鍗犵敤澶ч噺鍐呭瓨絀洪棿,鍗佸垎澶寸棝.鎵浠ュ疄闄呴」鐩腑閮戒細灝唜ml鍐嶈漿涓轟簩榪涘埗鏂囦歡鏉ュ鐞?浣嗘槸xml鐨勭伒媧繪х殑紜緢鏂逛究,濡傛灉rapidxml鑳芥帴榪戜簩榪涘埗鐨勯熷害,褰撶劧灝卞お濂藉暒,榪樻病鏈夋祴璇曡繃,涓嬮潰鏄竴浜涗粙緇?<br><br>璨屼技tinyxml浼氶亣鍒皍nicode闅滅,rapidxml涓嶄細,濡傛灉欏圭洰瑕佸仛澶氳璦鐗堟湰灝卞繀欏婚潰涓磋В鍐寵繖涓棶棰?..<br><br> <hr> <br>rapidxml鏄竴涓揩閫熺殑xml搴擄紝瀹樻柟緗戠珯錛?<a >http://rapidxml.sourceforge.net/</a>錛屾牴鎹甿anual鐪嬪埌錛屼粬绔熺劧姣攖inyxml蹇簡50-100鍊?br><br> <hr> <p>鐩墠鎴戝叕鍙稿紑鍙戠殑Nexus Engine鐨勫簳灞傚璞″簭鍒楀寲浣跨敤浜員inyXML鏉ヨ鍐橷ML鏂囦歡銆俆inyXML鏈変袱涓笉鐖界殑鍦版柟錛屼竴鏄畠鐨勬帴鍙d嬌鐢‵ILE*錛屽彟澶栦竴涓槸瀹冨 wchar_t涓嶈兘寰堝ソ鐨勬敮鎸併傚墠闃靛瓙鐪婤oost搴撶殑鏇存柊涓浜嗕竴涓狿ropertyTree錛屼粬鍦ㄥ鐞哫ML鏃剁敤鍒頒簡鍙﹀涓涓皬鐨勫簱 –RapidXML銆傛棦鐒墮棿鎺ョ殑鏄疊oost搴撶殑涓閮ㄥ垎錛屾墍浠ユ槸鍊煎緱涓璇曠殑銆備簬鏄壘鍒板叾瀹樻柟緗戠珯錛?a title=http://rapidxml.sourceforge.net/ target=_blank><font color=#5c7a99>http://rapidxml.sourceforge.net/</font></a>錛夌爺絀朵簡涓鐣備竴鐪嬩箣涓嬶紝鐢氭槸婊℃剰錛屼篃鎺ㄨ崘緇欏ぇ瀹剁湅鐪嬶紒</p> <p>棣栧厛灝辨槸閫熷害錛屾嵁瀹冭嚜宸卞縐版瘮TinyXML蹇?0鍒?0鍊嶏紝姣擷erces DOM蹇?0鍒?00鍊嶏紒璇︾粏鐨勬祴璇曟瘮杈冭瑙佸叾鐢ㄦ埛鎵嬪唽錛?a title=http://rapidxml.sourceforge.net/manual.html target=_blank><font color=#5c7a99>http://rapidxml.sourceforge.net/manual.html</font></a>錛夌殑“4. Performance ”涓鑺傘?/p> <p>鍏舵瀹冪殑璁捐闈炲父鐨勭畝媧侊紝鍙緷璧栦簬鏍囧噯搴撲腑鐨勫嚑涓熀鏈殑綾匯傚畠鐨勮緭鍏ヨ緭鍑洪兘鏄瓧絎︿覆錛岃繖鏍峰緢濂斤紝涓涓簱灝卞簲璇ュ叧娉ㄨ嚜宸辨牳蹇冪殑鍐呭錛屽仛灝介噺灝戠殑浜嬫儏銆傚畠鐨凙PI鍏跺疄鍜孴inyXML鍊掓槸鏈夊嚑鍒嗙浉浼鹼紝鐢ㄨ繃TinyXML鐨勪漢搴旇寰堝鏄撲笂鎵嬶細</p> <p>TinyXML涓昏鎺ュ彛綾?    RapidXML鐨勪富瑕佹帴鍙g被</p> <table cellSpacing=1 cellPadding=2 width=543 border=1> <tbody> <tr> <td vAlign=top width=300><strong>TinyXML涓昏鎺ュ彛綾?/strong></td> <td vAlign=top width=238><strong>RapidXML鐨勪富瑕佹帴鍙g被</strong></td> </tr> <tr> <td width=300>class TiXmlDocument</td> <td vAlign=top width=238>template<class Ch = char><br>class xml_document</td> </tr> <tr> <td vAlign=top width=300>class TiXmlNode</td> <td vAlign=top width=238>template<class Ch = char><br>class xml_node</td> </tr> <tr> <td vAlign=top width=300>class TiXmlAttribute</td> <td vAlign=top width=238>template<class Ch = char><br>class xml_attribute</td> </tr> </tbody> </table> <p>涓嬮潰榪樻槸鐪嬩竴涓叿浣撶殑渚嬪瓙鏉ヤ綋楠屼竴涓嬶紝涓嬮潰鏄疶inyXML瀹樻柟鏁欑▼涓垱寤篨ML鏂囨。鐨勪竴孌典唬鐮侊細</p> <blockquote> <p>void build_simple_doc( )<br>{<br>// Make xml: <?xml ..><Hello>World</Hello><br>TiXmlDocument doc;<br>TiXmlDeclaration * decl = new TiXmlDeclaration( “1.0″, “”, “” );<br>TiXmlElement * element = new TiXmlElement( “Hello” );<br>TiXmlText * text = new TiXmlText( “World” );<br>element->LinkEndChild( text );<br>doc.LinkEndChild( decl );<br>doc.LinkEndChild( element );<br>doc.SaveFile( “madeByHand.xml” );<br>}</p> </blockquote> <p>涓嬮潰鏄嬌鐢≧apidXML瀹炵幇綾諱技鍔熻兘鐨勪唬鐮侊細</p> <blockquote> <p>void build_simple_doc_by_rapidxml()<br>{<br>xml_document<> doc;<br>xml_node<>* decl = doc.allocate_node(node_declaration);<br>xml_attribute<>* decl_ver =<br>doc.allocate_attribute(“version”, “1.0″);<br>decl->append_attribute(decl_ver);<br>doc.append_node(decl);</p> <p>xml_node<>* node =<br>doc.allocate_node(node_element,    “Hello”, “World”);<br>doc.append_node(node);</p> <p>string text;<br>rapidxml::print(std::back_inserter(text), doc, 0);</p> <p>// write text to file by yourself<br>}</p> </blockquote> <p>涓嬮潰鏄嬌鐢≧apidXML鍒嗘瀽XML鐨勬牱渚嬩唬鐮侊細</p> <blockquote> <p>void parse_doc_by_rapidxml(char* xml_doc)<br>{<br>xml_document<> doc;        // character type defaults to char<br>doc.parse<0>(xml_doc);  // 0 means default parse flags</p> <p>xml_node<> *node = doc.first_node(“Hello”);<br>string node_val = node->value();<br>}</p> </blockquote><br> <hr> <p>鍓嶄袱澶╂湁鏈嬪弸闂紝鎴戠殑<a target=_blank><span style="COLOR: #0000ff">SlimXml</span></a>鏈夋病鏈夊拰<a target=_blank><span style="COLOR: #0000ff">RapidXml</span></a>瀵規瘮榪囨晥鐜囷紵鎴戞槸絎竴嬈″惉璇磋繖涓簱錛屾洿涓嶇敤璇村姣旀晥鐜囦簡錛屼簬鏄笂浠栦滑緗戠珯鐪嬩簡涓嬨?/p> <p>濂藉浼欙紝灞呯劧鍙風О姣?a target=_blank><span style="COLOR: #0000ff">TinyXml</span></a>蹇?0锝?0鍊嶏紝鑰屼笖鏄?a ><span style="COLOR: #0000ff">Boost.PropertyTree</span></a>鐨勯粯璁ml瑙f瀽鍣ㄣ?/p> <p>浜庢槸鏈夌偣濂藉錛屽洜涓轟互鍓嶄篃娌℃湁鐗瑰埆鍏沖績榪嘢limXml鐨勬晥鐜囥?/p> <p>浜庢槸鍒嗗埆涓嬭澆浜員inyXml-2.6.1鍜孯apidXml-1.13錛岃繀閫熺敤vc8寤虹珛浜嗕袱涓祴璇曞伐紼嬶紝鍦ㄧ郴緇熶腑鎼?#8221;*.xml”錛屾壘鍒頒簡涓涓瘮杈冨悎閫傜殑嫻嬭瘯鏂囦歡銆傚畠瓚沖澶э紙1.5M錛夛紝utf-8緙栫爜騫朵笖鍖呭惈涓?鑻辨枃錛屾湁涓瀹氬眰嬈℃繁搴︼紝澶х害3.3涓囪銆傛祴璇曟枃浠跺彲浠?a target=_blank><span style="COLOR: #0000ff">浠庤繖閲屼笅杞?/span></a></p> <p>嫻嬭瘯瀵硅薄鏄笁涓簱浠庡唴瀛樺瓧絎︿覆瑙f瀽xml鐨勫嚱鏁幫紝榪欐牱鑳芥帓闄や粠紜洏涓婅鏂囦歡榪欑涓嶇ǔ瀹氬洜绱犵殑騫叉壈錛岃屼笖RapidXml璨屼技鍙敮鎸佷粠鍐呭瓨閲岃В鏋?/p> <ul> <li>slim::XmlDocument::loadFromMemory() <li>TiXmlDocument::Parse() <li>rapidxml::xml_document<char>::parse<flag>() </li> </ul> <p>瑕佽鏄庣殑鏄紝RapidXml鐨勮繖涓猵arse鏄竴涓ā鏉垮嚱鏁幫紝蹇呴』緇欎竴涓猣lag鐨勫弬鏁幫紝鎴戞祴璇曠殑鏃跺欑粰鐨勬槸榛樿鐨?</p> <p>嫻嬭瘯緇撴灉錛岃В鏋愯繖涓?.3涓囪錛?.5M澶у皬鐨剎ml錛屼笁涓簱鍒嗗埆鑺變簡</p> <ul> <li>SlimXml: 22ms <li>TinyXml: 54ms <li>RapidXml: 4ms! </li> </ul> <p>緇撹鏄紝RapidXml鏋滅劧寰堝己鎮嶏紝灞呯劧姣旀垜鐨凷limXml蹇?鍊嶅銆備絾鏄茍娌℃湁濡備綔鑰呮墍璇存瘮TinyXml蹇?0~60鍊嶏紝鍙湁涓嶅埌15鍊嶃傛嵁璇村姣旂敤鐨勬槸涓涓害50k澶у皬鐨剎ml鏂囦歡錛屽彲鎯滃茍娌℃湁鎻愪緵涓嬭澆錛屼笉鐒跺彲浠ラ獙璇佷竴涓嬨?/p> <p>姣旇緝嬈f叞鐨勬槸錛屽湪鎴戝茍娌℃湁寰堝叧娉ㄦ晥鐜囩殑鎯呭喌涓嬶紝SlimXml浠嶇劧姣擳inyXml蹇?.5鍊嶃係limXml璧扮殑鏄畝鍗曞皬宸ц礬綰匡紝婧愪唬鐮佸彧鏈?2k錛岃孴inyXml鍜孯apidXml鐨勬簮鐮佸垎鍒槸147k鍜?41k錛屾湁榪欐牱鐨勬晥鐜囧彲浠ユ弧鎰忎簡銆傚湪鎴戞湁寰堝絀洪棽浠ュ墠錛屼及璁℃垜涔熶笉浼氬啀鍘諱紭鍖栧畠錛屽洜涓鴻繖涓簱涓昏榪樻槸閽堝鍑犲崄涓婄櫨琛岀殑灝忔枃浠訛紝瑙f瀽鐗瑰埆澶х殑xml涓嶅湪鎴戣冭檻鐨勮寖鍥翠箣鍐呫?/p> <p>浠ヤ笅鏄疪apidXml鎻愪緵鐨勫父瑙亁ml搴撴晥鐜囧鐓ц〃錛屽叾涓繕寰堢墰榧誨湴鎻愪緵浜嗗拰strlen()鍑芥暟鐨勬晥鐜囧姣?/p> <p><a ><img class="alignnone size-full wp-image-279" title=xml height=275 src="http://hiphotos.baidu.com/5iprog/pic/item/1878fd197c684c4235fa4182.jpg" width=582></a></p> <p>鎴戜及璁apidXml閫熷害蹇殑涓昏鍘熷洜鏄memory pool鐨勪嬌鐢紝姣曠珶鍦ㄨВ鏋愯繃紼嬩腑闇瑕佸垱寤哄ぇ閲忕殑string錛屽彲浠ユ兂璞$敤memory pool鍜岀洿鎺ヨ蛋榛樿鐨刵ew寰堝鏄撲駭鐢熻秴榪囦竴涓暟閲忕駭鐨勬晥鐜囧樊寮傘?/p> <br> <hr> <br><br><br><br><br><br> <img src ="http://m.shnenglu.com/singohgod/aggbug/133685.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/singohgod/" target="_blank">澶у疂澶╁ぉ瑙?/a> 2010-11-15 17:24 <a href="http://m.shnenglu.com/singohgod/archive/2010/11/15/133685.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>[杞澆]浠嬬粛LuaPlus: 濂界敤鐨凩ua For C++鎵╁睍(淇)http://m.shnenglu.com/singohgod/archive/2010/11/15/133678.html澶у疂澶╁ぉ瑙?/dc:creator>澶у疂澶╁ぉ瑙?/author>Mon, 15 Nov 2010 09:11:00 GMThttp://m.shnenglu.com/singohgod/archive/2010/11/15/133678.htmlhttp://m.shnenglu.com/singohgod/comments/133678.htmlhttp://m.shnenglu.com/singohgod/archive/2010/11/15/133678.html#Feedback0http://m.shnenglu.com/singohgod/comments/commentRss/133678.htmlhttp://m.shnenglu.com/singohgod/services/trackbacks/133678.html闃呰鍏ㄦ枃

]]>
[杞澆]C++ 紼嬪簭鏂囨。鐢熸垚鍣ㄤ粙緇?doxygen)http://m.shnenglu.com/singohgod/archive/2010/11/15/133677.html澶у疂澶╁ぉ瑙?/dc:creator>澶у疂澶╁ぉ瑙?/author>Mon, 15 Nov 2010 09:07:00 GMThttp://m.shnenglu.com/singohgod/archive/2010/11/15/133677.htmlhttp://m.shnenglu.com/singohgod/comments/133677.htmlhttp://m.shnenglu.com/singohgod/archive/2010/11/15/133677.html#Feedback0http://m.shnenglu.com/singohgod/comments/commentRss/133677.htmlhttp://m.shnenglu.com/singohgod/services/trackbacks/133677.html闃呰鍏ㄦ枃

]]>
[杞澆]Lua鑴氭湰璇硶璇存槑(淇)http://m.shnenglu.com/singohgod/archive/2010/11/15/133676.html澶у疂澶╁ぉ瑙?/dc:creator>澶у疂澶╁ぉ瑙?/author>Mon, 15 Nov 2010 09:05:00 GMThttp://m.shnenglu.com/singohgod/archive/2010/11/15/133676.htmlhttp://m.shnenglu.com/singohgod/comments/133676.htmlhttp://m.shnenglu.com/singohgod/archive/2010/11/15/133676.html#Feedback0http://m.shnenglu.com/singohgod/comments/commentRss/133676.htmlhttp://m.shnenglu.com/singohgod/services/trackbacks/133676.html
Lua鑴氭湰璇硶璇存槑錛堝鍔爈ua5.1閮ㄤ喚鐗規э級

銆銆Lua 鐨勮娉曟瘮杈冪畝鍗曪紝瀛︿範璧鋒潵涔熸瘮杈冪渷鍔涳紝浣嗗姛鑳藉嵈騫朵笉寮便?br>銆銆鎵浠ワ紝鎴戝彧綆鍗曠殑褰掔撼涓涓婰ua鐨勪竴浜涜娉曡鍒欙紝浣跨敤璧鋒潵鏂逛究濂芥煡灝卞彲浠ヤ簡銆備及璁$湅瀹屼簡錛屽氨鎳傚緱鎬庝箞鍐橪ua紼嬪簭浜嗐?br>
銆銆鍦↙ua涓紝涓鍒囬兘鏄彉閲忥紝闄や簡鍏抽敭瀛椼?br>
I.  棣栧厛鏄敞閲?br>銆銆鍐欎竴涓▼搴忥紝鎬繪槸灝戜笉浜嗘敞閲婄殑銆?br>銆銆鍦↙ua涓紝浣犲彲浠ヤ嬌鐢ㄥ崟琛屾敞閲婂拰澶氳娉ㄩ噴銆?br>銆銆鍗曡娉ㄩ噴涓紝榪炵畫涓や釜鍑忓彿"--"琛ㄧず娉ㄩ噴鐨勫紑濮嬶紝涓鐩村歡緇埌琛屾湯涓烘銆傜浉褰撲簬C++璇█涓殑"http://"銆?br>銆銆澶氳娉ㄩ噴涓紝鐢?--[["琛ㄧず娉ㄩ噴寮濮嬶紝騫朵笖涓鐩村歡緇埌"]]"涓烘銆傝繖縐嶆敞閲婄浉褰撲簬C璇█涓殑"/*...*/"銆傚湪娉ㄩ噴褰撲腑錛?[["鍜?]]"鏄彲浠ュ祵濂楃殑錛?span style="COLOR: red">鍦╨ua5.1涓紝涓嫭鍙蜂腑闂存槸鍙互鍔犺嫢騫蹭釜"="鍙風殑錛屽 [==[ ... ]==]錛夛紝瑙佷笅闈㈢殑瀛楃涓茶〃紺鴻鏄庛?br>
II.  Lua緙栫▼
銆銆緇忓吀鐨?Hello world"鐨勭▼搴忔繪槸琚敤鏉ュ紑濮嬩粙緇嶄竴縐嶈璦銆傚湪Lua涓紝鍐欎竴涓繖鏍風殑紼嬪簭寰堢畝鍗曪細
銆銆print("Hello world")
銆銆鍦↙ua涓紝璇彞涔嬮棿鍙互鐢ㄥ垎鍙?錛?闅斿紑錛屼篃鍙互鐢ㄧ┖鐧介殧寮銆備竴鑸潵璇達紝濡傛灉澶氫釜璇彞鍐欏湪鍚屼竴琛岀殑璇濓紝寤鴻鎬繪槸鐢ㄥ垎鍙烽殧寮銆?br>銆銆Lua 鏈夊ソ鍑犵紼嬪簭鎺у埗璇彞錛屽錛?br>
鎺у埗璇彞 鏍煎紡 紺轟緥
If if 鏉′歡 then ... elseif 鏉′歡 then ... else ... end
if 1+1=2 then print("true")
elseif 1+2~=3 then print("true")
else print("false"end

While while 鏉′歡 do ... end
while 1+1~=2 do print("true"end

Repeat repeat ... until 鏉′歡
repeat print("Hello"until 1+1~=2

For for 鍙橀噺=鍒濆? 緇堢偣鍊? 姝ヨ繘 do ... end
for i = 1102 do print(i) end

For for 鍙橀噺1, 鍙橀噺2, ... 鍙橀噺n in 琛ㄦ垨鏋氫婦鍑芥暟 do ... end
for a,b in mylist do print(a, b) end


銆銆娉ㄦ剰涓涓嬶紝for鐨勫驚鐜彉閲忔繪槸鍙綔鐢ㄤ簬for鐨勫眬閮ㄥ彉閲忥紱褰撶渷鐣ユ榪涘兼椂錛宖or寰幆浼氫嬌鐢?浣滀負姝ヨ繘鍊箋?br>銆銆浣跨敤break鍙互鐢ㄦ潵涓涓涓驚鐜?br>銆銆鐩稿C璇█鏉ヨ錛孡ua鏈夊嚑涓湴鏂規槸鏄庢樉涓嶅悓鐨勶紝鎵浠ラ潰瑕佺壒鍒敞鎰忎竴涓嬶細

銆銆錛?strong>璇彞鍧?/strong>
銆銆銆銆璇彞鍧楀湪C涓槸鐢?{"鍜?}"鎷搗鏉ョ殑錛屽湪Lua涓紝瀹冩槸鐢╠o 鍜?end 鎷搗鏉ョ殑銆傛瘮濡傦細
銆銆銆銆do print("Hello") end
銆銆銆銆鍙互鍦?鍑芥暟 涓拰 璇彞鍧?/strong> 涓畾灞閮ㄥ彉閲忋?br>
銆銆錛?strong>璧嬪艱鍙?/strong>
銆銆銆銆璧嬪艱鍙ュ湪Lua琚己鍖栦簡銆傚畠鍙互鍚屾椂緇欏涓彉閲忚祴鍊箋?br>銆銆銆銆渚嬪錛?br>銆銆銆銆a,b,c,d=1,2,3,4
銆銆銆銆鐢氳嚦鏄細
銆銆銆銆a,b=b,a  -- 澶氫箞鏂逛究鐨勪氦鎹㈠彉閲忓姛鑳藉晩銆?br>銆銆銆銆鍦ㄩ粯璁ゆ儏鍐典笅錛屽彉閲忔繪槸璁や負鏄叏灞鐨勩傚亣濡傞渶瑕佸畾涔夊眬閮ㄥ彉閲忥紝鍒欏湪絎竴嬈¤祴鍊肩殑鏃跺欙紝闇瑕佺敤local璇存槑銆傛瘮濡傦細
銆銆銆銆local a,b,c = 1,2,3  -- a,b,c閮芥槸灞閮ㄥ彉閲?br>
銆銆錛?strong>鏁板艱繍綆?/strong>
銆銆銆銆鍜孋璇█涓鏍鳳紝鏀寔 +, -, *, /銆備絾Lua榪樺浜嗕竴涓?^"銆傝繖琛ㄧず鎸囨暟涔樻柟榪愮畻銆傛瘮濡?^3 緇撴灉涓?, 2^4緇撴灉涓?6銆?br>銆銆銆銆榪炴帴涓や釜瀛楃涓詫紝鍙互鐢?.."榪愬絎︺傚錛?br>銆銆銆銆"This a " .. "string." -- 絳変簬 "this a string"

銆銆錛?strong>姣旇緝榪愮畻
姣旇緝絎﹀彿 < > <= >= == ~=
鍚箟 灝忎簬 澶т簬 灝忎簬鎴栫瓑浜?/td> 澶т簬鎴栫瓑浜?/td> 鐩哥瓑 涓嶇浉絳?/td>

銆銆銆銆鎵鏈夎繖浜涙搷浣滅鎬繪槸榪斿洖true鎴杅alse銆?br>銆銆銆銆瀵逛簬Table錛孎unction鍜孶serdata綾誨瀷鐨勬暟鎹紝鍙湁 == 鍜?~=鍙互鐢ㄣ傜浉絳夎〃紺轟袱涓彉閲忓紩鐢ㄧ殑鏄悓涓涓暟鎹傛瘮濡傦細
銆銆銆銆a={1,2}
銆銆銆銆b
=a
銆銆銆銆
print(a==b, a~=b)  --杈撳嚭 true, false
銆銆銆銆a={1,2}
銆銆銆銆b
={1,2}
銆銆銆銆
print(a==b, a~=b)  --杈撳嚭 false, true


銆銆錛庨昏緫榪愮畻
銆銆銆銆and, or, not
銆銆銆銆鍏朵腑錛宎nd 鍜?or 涓嶤璇█鍖哄埆鐗瑰埆澶с?br>銆銆銆銆鍦ㄨ繖閲岋紝璇峰厛璁頒綇錛屽湪Lua涓紝鍙湁false鍜宯il鎵嶈綆椾負false錛屽叾瀹冧換浣曟暟鎹兘璁$畻涓簍rue錛?涔熸槸true錛?br>銆銆銆銆and 鍜?or鐨勮繍綆楃粨鏋滀笉鏄痶rue鍜宖alse錛岃屾槸鍜屽畠鐨勪袱涓搷浣滄暟鐩稿叧銆?br>銆銆銆銆a and b錛氬鏋渁涓篺alse錛屽垯榪斿洖a錛涘惁鍒欒繑鍥瀊
銆銆銆銆a or b錛氬鏋?a 涓簍rue錛屽垯榪斿洖a錛涘惁鍒欒繑鍥瀊

銆銆銆銆涓懼嚑涓緥瀛愶細
銆銆銆銆 print(4 and 5--杈撳嚭 5
銆銆銆銆 print(nil and 13--杈撳嚭 nil
銆銆銆銆 print(false and 13--杈撳嚭 false
銆銆銆銆 print(4 or 5--杈撳嚭 4
銆銆銆銆 print(false or 5--杈撳嚭 5

銆銆銆銆鍦↙ua涓繖鏄緢鏈夌敤鐨勭壒鎬э紝涔熸槸姣旇緝浠や漢娣鋒揣鐨勭壒鎬с?br>銆銆銆銆鎴戜滑鍙互妯℃嫙C璇█涓殑璇彞錛歺 = a? b : c錛屽湪Lua涓紝鍙互鍐欐垚錛歺 = a and b or c銆?br>銆銆銆銆鏈鏈夌敤鐨勮鍙ユ槸錛?x = x or v錛屽畠鐩稿綋浜庯細if not x then x = v end 銆?br>
銆銆錛庤繍綆楃浼樺厛綰э紝浠庝綆鍒伴珮欏哄簭濡備笅錛?br>
     or
     and
     <     >     <=    >=    ~=    ==
     .. (瀛楃涓茶繛鎺?
     +     -
     *     /     %
     not   #(lua5.1 鍙栭暱搴﹁繍綆?/span>)     - (涓鍏冭繍綆?
     ^
鍜孋璇█涓鏍鳳紝鎷彿鍙互鏀瑰彉浼樺厛綰с?br>
III.  鍏抽敭瀛?br>銆銆鍏抽敭瀛楁槸涓嶈兘鍋氫負鍙橀噺鐨勩侺ua鐨勫叧閿瓧涓嶅錛屽氨浠ヤ笅鍑犱釜錛?br>    
and break do else elseif
end false for function if
in local nil not or
repeat return then true until while

IV.  鍙橀噺綾誨瀷
銆銆鎬庝箞紜畾涓涓彉閲忔槸浠涔堢被鍨嬬殑鍛紵澶у鍙互鐢╰ype()鍑芥暟鏉ユ鏌ャ侺ua鏀寔鐨勭被鍨嬫湁浠ヤ笅鍑犵錛?br>
Nil 絀哄鹼紝鎵鏈夋病鏈変嬌鐢ㄨ繃鐨勫彉閲忥紝閮芥槸nil銆俷il鏃㈡槸鍊鹼紝鍙堟槸綾誨瀷銆?/td>
Boolean 甯冨皵鍊鹼紝鍙湁涓や釜鏈夋晥鍊鹼細true鍜宖alse
Number 鏁板鹼紝鍦↙ua閲岋紝鏁板肩浉褰撲簬C璇█鐨刣ouble
String 瀛楃涓詫紝濡傛灉浣犳効鎰忕殑璇濓紝瀛楃涓叉槸鍙互鍖呭惈"\0"瀛楃鐨勶紙榪欏拰C璇█鎬繪槸浠?\0"緇撳熬鏄笉涓鏍風殑錛?/td>
Table 鍏崇郴琛ㄧ被鍨嬶紝榪欎釜綾誨瀷鍔熻兘姣旇緝寮哄ぇ錛岃鍙傝冨悗闈㈢殑鍐呭銆?/td>
Function 鍑芥暟綾誨瀷錛屼笉瑕佹鐤戯紝鍑芥暟涔熸槸涓縐嶇被鍨嬶紝涔熷氨鏄錛屾墍鏈夌殑鍑芥暟錛屽畠鏈韓灝辨槸涓涓彉閲忋?/td>
Userdata 鍡紝榪欎釜綾誨瀷涓撻棬鐢ㄦ潵鍜孡ua鐨勫涓繪墦浜ら亾鐨勩傚涓婚氬父鏄敤C鍜孋++鏉ョ紪鍐欑殑錛屽湪榪欑鎯呭喌涓嬶紝Userdata鍙互鏄涓葷殑浠繪剰鏁版嵁綾誨瀷錛屽父鐢ㄧ殑鏈塖truct鍜屾寚閽堛?/td>
Thread 綰跨▼綾誨瀷錛屽湪Lua涓病鏈夌湡姝g殑綰跨▼銆侺ua涓彲浠ュ皢涓涓嚱鏁板垎鎴愬嚑閮ㄤ喚榪愯銆?/span>濡傛灉鎰熷叴瓚g殑璇濓紝鍙互鍘葷湅鐪婰ua鐨勬枃妗c?br>鐜板湪鍥炶繃澶存潵鐪嬬湅錛屽掕寰椾笉鏄嚎紼嬬被鍨嬨傚弽鑰岃薄鏄敤鏉ュ仛閬嶅巻鐨勶紝璞℃槸Iterator鍑芥暟銆?br>濡傦細
function range(n)
  local
= 0
  
while(i < n) do
    coroutine.yield( i )
    i = i + 1
  
end
end
鍙儨鐨勬槸瑕佺戶緇繍琛岋紝闇瑕乧oroutine.resume鍑芥暟錛屾湁鐐歸浮鑲嬨傝鎸囨暀銆?br>

V.  鍙橀噺鐨勫畾涔?br>銆銆鎵鏈夌殑璇█錛岄兘瑕佺敤鍒板彉閲忋傚湪Lua涓紝涓嶇鍦ㄤ粈涔堝湴鏂逛嬌鐢ㄥ彉閲忥紝閮戒笉闇瑕佸0鏄庯紝騫朵笖鎵鏈夌殑榪欎簺鍙橀噺鎬繪槸鍏ㄥ眬鍙橀噺錛岄櫎闈炴垜浠湪鍓嶉潰鍔犱笂"local"銆傝繖涓鐐硅鐗瑰埆娉ㄦ剰錛屽洜涓烘垜浠彲鑳芥兂鍦ㄥ嚱鏁伴噷浣跨敤灞閮ㄥ彉閲忥紝鍗村繕浜嗙敤local鏉ヨ鏄庛?br>銆銆鑷充簬鍙橀噺鍚嶅瓧錛屽畠鏄ぇ灝忓啓鐩稿叧鐨勩備篃灝辨槸璇達紝A鍜宎鏄袱涓笉鍚岀殑鍙橀噺銆?br>銆銆瀹氫箟涓涓彉閲忕殑鏂規硶灝辨槸璧嬪箋?錛?鎿嶄綔灝辨槸鐢ㄦ潵璧嬪肩殑
銆銆鎴戜滑涓璧鋒潵瀹氫箟鍑犵甯哥敤綾誨瀷鐨勫彉閲忓惂銆?br>銆銆A.  Nil
銆銆銆銆姝e鍓嶉潰鎵璇寸殑錛屾病鏈変嬌鐢ㄨ繃鐨勫彉閲忕殑鍊鹼紝閮芥槸Nil銆傛湁鏃跺欐垜浠篃闇瑕佸皢涓涓彉閲忔竻闄わ紝榪欐椂鍊欙紝鎴戜滑鍙互鐩存帴緇欏彉閲忚祴浠il鍊箋傚錛?br>
銆銆銆銆var1=nil  -- 璇鋒敞鎰?nbsp;nil 涓瀹氳灝忓啓

銆銆B.  Boolean
銆銆銆銆甯冨皵鍊奸氬父鏄敤鍦ㄨ繘琛屾潯浠跺垽鏂殑鏃跺欍傚竷灝斿兼湁涓ょ錛歵rue 鍜?false銆傚湪Lua涓紝鍙湁false鍜宯il鎵嶈璁$畻涓篺alse錛岃屾墍鏈変換浣曞叾瀹冪被鍨嬬殑鍊鹼紝閮芥槸true銆傛瘮濡?錛岀┖涓茬瓑絳夛紝閮芥槸true銆備笉瑕佽 C璇█鐨勪範鎯墍璇錛?鍦↙ua涓殑鐨勭‘紜槸true銆備綘涔熷彲浠ョ洿鎺ョ粰涓涓彉閲忚祴浠oolean綾誨瀷鐨勫鹼紝濡傦細
銆銆銆銆theBoolean = true

銆銆C.  Number
銆銆銆銆鍦↙ua涓紝鏄病鏈夋暣鏁扮被鍨嬬殑錛屼篃涓嶉渶瑕併備竴鑸儏鍐典笅錛屽彧瑕佹暟鍊間笉鏄緢澶э紙姣斿涓嶈秴榪?00,000,000,000,000錛夛紝鏄笉浼氫駭鐢熻垗鍏ヨ宸殑銆傚湪WindowsXP鑳借窇鐨勫綋浠婁富嫻丳C涓婏紝瀹炴暟鐨勮繍綆楀茍涓嶆瘮鏁存暟鎱€?br>銆銆銆銆瀹炴暟鐨勮〃紺烘柟娉曪紝鍚孋璇█綾諱技錛屽錛?br>銆銆銆銆4 0.4 4.57e-3 0.3e12 5e+20

銆銆D.  String
銆銆銆銆瀛楃涓詫紝鎬繪槸涓縐嶉潪甯稿父鐢ㄧ殑楂樼駭綾誨瀷銆傚湪Lua涓紝鎴戜滑鍙互闈炲父鏂逛究鐨勫畾涔夊緢闀垮緢闀跨殑瀛楃涓層?br>銆銆銆銆瀛楃涓插湪Lua涓湁鍑犵鏂規硶鏉ヨ〃紺猴紝鏈閫氱敤鐨勬柟娉曪紝鏄敤鍙屽紩鍙鋒垨鍗曞紩鍙鋒潵鎷搗涓涓瓧絎︿覆鐨勶紝濡傦細
銆銆銆銆"That's go!"
銆銆銆銆鎴?br>銆銆銆銆'Hello world!'

銆銆銆銆鍜孋璇█鐩稿悓鐨勶紝瀹冩敮鎸佷竴浜涜漿涔夊瓧絎︼紝鍒楄〃濡備笅錛?br>銆銆銆銆\a  bell
銆銆銆銆\b  back space
銆銆銆銆\f  form feed
銆銆銆銆\n  newline
銆銆銆銆\r  carriage return
銆銆銆銆\t  horizontal tab
銆銆銆銆\v  vertical tab
銆銆銆銆\\  backslash
銆銆銆銆\"  double quote
銆銆銆銆\"  single quote
銆銆銆銆\[  left square bracket
銆銆銆銆\]  right square bracket

銆銆銆銆鐢變簬榪欑瀛楃涓插彧鑳藉啓鍦ㄤ竴琛屼腑錛屽洜姝わ紝涓嶅彲閬垮厤鐨勮鐢ㄥ埌杞箟瀛楃銆傚姞鍏ヤ簡杞箟瀛楃鐨勪覆錛岀湅璧鋒潵瀹炲湪鏄笉鏁㈡伃緇達紝姣斿錛?br>銆銆銆銆"one line\nnext line\n\"in quotes\", "in quotes""
銆銆銆銆涓澶у爢鐨?\"絎﹀彿璁╀漢鐪嬭搗鏉ュ緢鍊掕儍鍙c傚鏋滀綘涓庢垜鏈夊悓鎰燂紝閭d箞錛屾垜浠湪Lua涓紝鍙互鐢ㄥ彟涓縐嶈〃紺烘柟娉曪細鐢?[["鍜?]]"灝嗗琛岀殑瀛楃涓叉嫭璧鋒潵銆傦紙lua5.1: 涓嫭鍙蜂腑闂村彲浠ュ姞鍏ヨ嫢騫蹭釜"="鍙鳳紝濡?[==[ ... ]==]錛岃瑙佷笅闈㈢ず渚?/span>錛?br>銆銆銆銆紺轟緥錛氫笅闈㈢殑璇彞鎵琛ㄧず鐨勬槸瀹屽叏鐩稿悓鐨勫瓧絎︿覆錛?br>
= 'alo\n123"'
= "alo\n123\""
= '\97lo\10\04923"'
= [[alo
123"
]]
= [==[
alo
123"
]==]

銆銆銆銆鍊煎緱娉ㄦ剰鐨勬槸錛屽湪榪欑瀛楃涓蹭腑錛屽鏋滃惈鏈夊崟鐙嬌鐢ㄧ殑"[["鎴?]]"灝變粛鐒跺緱鐢?\["鎴?\]"鏉ラ伩鍏嶆涔夈傚綋鐒訛紝榪欑鎯呭喌鏄瀬灝戜細鍙戠敓鐨勩?br>
銆銆E.  Table
銆銆銆銆鍏崇郴琛ㄧ被鍨嬶紝榪欐槸涓涓緢寮哄ぇ鐨勭被鍨嬨傛垜浠彲浠ユ妸榪欎釜綾誨瀷鐪嬩綔鏄竴涓暟緇勩傚彧鏄疌璇█鐨勬暟緇勶紝鍙兘鐢ㄦ鏁存暟鏉ヤ綔绱㈠紩錛涘湪Lua涓紝浣犲彲浠ョ敤浠繪剰綾誨瀷鏉ヤ綔鏁扮粍鐨勭儲寮曪紝闄や簡nil銆傚悓鏍鳳紝鍦–璇█涓紝鏁扮粍鐨勫唴瀹瑰彧鍏佽涓縐嶇被鍨嬶紱鍦↙ua涓紝浣犱篃鍙互鐢ㄤ換鎰忕被鍨嬬殑鍊兼潵浣滄暟緇勭殑鍐呭錛岄櫎浜唍il銆?br>銆銆銆銆Table鐨勫畾涔夊緢綆鍗曪紝瀹冪殑涓昏鐗瑰緛鏄敤"{"鍜?}"鏉ユ嫭璧蜂竴緋誨垪鏁版嵁鍏冪礌鐨勩傛瘮濡傦細
銆銆銆銆T1 = {}  -- 瀹氫箟涓涓┖琛?/span>
銆銆銆銆T1[1]=10  -- 鐒跺悗鎴戜滑灝卞彲浠ヨ薄C璇█涓鏍鋒潵浣跨敤瀹冧簡銆?/span>

銆銆銆銆T1["John"]={Age=27, Gender="Male"}
銆銆銆銆榪欎竴鍙ョ浉褰撲簬錛?br>銆銆銆銆T1
["John"]={}  -- 蹇呴』鍏堝畾涔夋垚涓涓〃錛岃繕璁板緱鏈畾涔夌殑鍙橀噺鏄痭il綾誨瀷鍚?/span>
銆銆銆銆T1["John"]["Age"]=27
銆銆銆銆T1
["John"]["Gender"]="Male"
銆銆銆銆褰撹〃鐨勭儲寮曟槸瀛楃涓茬殑鏃跺欙紝鎴戜滑鍙互綆鍐欐垚錛?br>銆銆銆銆T1.John
={}
銆銆銆銆T1.John.Age
=27
銆銆銆銆T1.John.Gender
="Male"
銆銆銆銆鎴?br>銆銆銆銆T1.John{Age
=27, Gender="Male"}
榪欐槸涓涓緢寮虹殑鐗規с?br>
銆銆銆銆鍦ㄥ畾涔夎〃鐨勬椂鍊欙紝鎴戜滑鍙互鎶婃墍鏈夌殑鏁版嵁鍐呭涓璧峰啓鍦?{"鍜?}"涔嬮棿錛岃繖鏍峰瓙鏄潪甯告柟渚匡紝鑰屼笖寰堝ソ鐪嬨傛瘮濡傦紝鍓嶉潰鐨凾1鐨勫畾涔夛紝鎴戜滑鍙互榪欎箞鍐欙細
銆銆銆銆T1=
銆銆銆銆{
銆銆銆銆銆銆
10,  -- 鐩稿綋浜?nbsp;[1] = 10
銆銆銆銆銆銆[100] = 40,
銆銆銆銆銆銆John
=  -- 濡傛灉浣犲師鎰忥紝浣犺繕鍙互鍐欐垚錛歔"John"] =
銆銆銆銆銆銆{
銆銆銆銆銆銆銆銆Age
=27,   -- 濡傛灉浣犲師鎰忥紝浣犺繕鍙互鍐欐垚錛歔"Age"] =27
銆銆銆銆銆銆銆銆Gender=Male   -- 濡傛灉浣犲師鎰忥紝浣犺繕鍙互鍐欐垚錛歔"Gender"] =Male
銆銆銆銆銆銆},
銆銆銆銆銆銆
20  -- 鐩稿綋浜?nbsp;[2] = 20
銆銆銆銆}

銆銆銆銆鐪嬭搗鏉ュ緢婕備寒錛屼笉鏄悧錛熸垜浠湪鍐欑殑鏃跺欙紝闇瑕佹敞鎰忎笁鐐癸細
銆銆銆銆絎竴錛屾墍鏈夊厓绱犱箣闂達紝鎬繪槸鐢ㄩ楀彿"錛?闅斿紑錛?br>銆銆銆銆絎簩錛屾墍鏈夌儲寮曞奸兘闇瑕佺敤"["鍜?]"鎷搗鏉ワ紱濡傛灉鏄瓧絎︿覆錛岃繕鍙互鍘繪帀寮曞彿鍜屼腑鎷彿錛?br>銆銆銆銆絎笁錛屽鏋滀笉鍐欑儲寮曪紝鍒欑儲寮曞氨浼氳璁や負鏄暟瀛楋紝騫舵寜欏哄簭鑷姩浠?寰鍚庣紪錛?br>
銆銆銆銆琛ㄧ被鍨嬬殑鏋勯犳槸濡傛鐨勬柟渚匡紝浠ヨ嚧浜庡父甯歌浜虹敤鏉ヤ唬鏇塊厤緗枃浠躲傛槸鐨勶紝涓嶇敤鎬鐤戯紝瀹冩瘮ini鏂囦歡瑕佹紓浜紝騫朵笖寮哄ぇ鐨勫銆?br>
銆銆F.  Function
銆銆銆銆鍑芥暟錛屽湪Lua涓紝鍑芥暟鐨勫畾涔変篃寰堢畝鍗曘傚吀鍨嬬殑瀹氫箟濡備笅錛?br>
銆銆銆銆function add(a,b)  -- add 鏄嚱鏁板悕瀛楋紝a鍜宐鏄弬鏁板悕瀛?/span>
銆銆銆銆 return a+b  -- return 鐢ㄦ潵榪斿洖鍑芥暟鐨勮繍琛岀粨鏋?/span>
銆銆銆銆end

銆銆銆銆璇鋒敞鎰忥紝return璇█涓瀹氳鍐欏湪end涔嬪墠銆傚亣濡傛垜浠潪瑕佸湪涓棿鏀句笂涓鍙eturn錛岄偅涔堝氨搴旇瑕佸啓鎴愶細do return end銆?br>銆銆銆銆榪樿寰楀墠闈㈣榪囷紝鍑芥暟涔熸槸鍙橀噺綾誨瀷鍚楋紵涓婇潰鐨勫嚱鏁板畾涔夛紝鍏跺疄鐩稿綋浜庯細
銆銆銆銆add = function (a,b) return a+end
褰撻噸鏂扮粰add璧嬪兼椂錛屽畠灝變笉鍐嶈〃紺鴻繖涓嚱鏁頒簡銆傛垜浠敋鑷沖彲浠ヨ祴緇檃dd浠繪剰鏁版嵁錛屽寘鎷琻il 錛堣繖鏍鳳紝璧嬪間負nil錛屽皢浼氭妸璇ュ彉閲忔竻闄わ級銆侳unction鏄笉鏄緢璞璇█鐨勫嚱鏁版寚閽堝憿錛?br>
銆銆銆銆鍜孋璇█涓鏍鳳紝Lua鐨勫嚱鏁板彲浠ユ帴鍙楀彲鍙樺弬鏁頒釜鏁幫紝瀹冨悓鏍鋒槸鐢?..."鏉ュ畾涔夌殑錛屾瘮濡傦細
銆銆銆銆function sum (a,b,)
濡傛灉鎯沖彇寰?..鎵浠h〃鐨勫弬鏁幫紝鍙互鍦ㄥ嚱鏁頒腑璁塊棶arg灞閮ㄥ彉閲忥紙琛ㄧ被鍨嬶級寰楀埌 (lua5.1: 鍙栨秷arg錛屽茍鐩存帴鐢?..."鏉ヤ唬琛ㄥ彲鍙樺弬鏁頒簡錛屾湰璐ㄨ繕鏄痑rg)銆?br>銆銆銆銆濡?sum(1,2,3,4)
銆銆銆銆鍒欙紝鍦ㄥ嚱鏁頒腑錛宎 = 1, b = 2, arg = {3, 4}  (lua5.1:  a = 1, b = 2, ... = {3, 4})
銆銆銆銆鏇村彲璐電殑鏄紝瀹冨彲浠ュ悓鏃惰繑鍥炲涓粨鏋滐紝姣斿錛?br>
銆銆銆銆function s()
銆銆銆銆銆銆
return 1,2,3,4
銆銆銆銆
end
銆銆銆銆a,b,c,d 
= s()  -- 姝ゆ椂錛宎 = 1, b = 2, c = 3, d = 4

銆銆銆銆鍓嶉潰璇磋繃錛岃〃綾誨瀷鍙互鎷ユ湁浠繪剰綾誨瀷鐨勫鹼紝鍖呮嫭鍑芥暟錛佸洜姝わ紝鏈変竴涓緢寮哄ぇ鐨勭壒鎬ф槸錛屾嫢鏈夊嚱鏁扮殑琛紝鍝︼紝鎴戞兂鏇存伆褰撶殑搴旇璇存槸瀵硅薄鍚с侺ua鍙互浣跨敤闈㈠悜瀵硅薄緙栫▼浜嗐備笉淇★紵涓句緥濡備笅錛?br>
銆銆銆銆t =
銆銆銆銆{
銆銆銆銆 Age 
= 27
銆銆銆銆 
add = function(self, n) self.Age = self.Age+end
銆銆銆銆}
銆銆銆銆
print(t.Age)  -- 27
銆銆銆銆t.add(t, 10)
銆銆銆銆
print(t.Age)  -- 37

銆銆銆銆涓嶈繃錛宼.add(t,10) 榪欎竴鍙ュ疄鍦ㄦ槸鏈夌偣鍦熷鍚э紵娌″叧緋伙紝鍦↙ua涓紝鎴戜滑鍙互綆鍐欐垚錛?br>
銆銆銆銆t:add(10)    -- 鐩稿綋浜?nbsp;t.add(t,10)

銆銆G.  Userdata 鍜?Thread
銆銆銆銆榪欎袱涓被鍨嬬殑璇濋錛岃秴鍑轟簡鏈枃鐨勫唴瀹癸紝灝變笉鎵撶畻緇嗚浜嗐?br>
VI.  緇撴潫璇?br>銆銆灝辮繖涔堢粨鏉熶簡鍚楋紵褰撶劧涓嶆槸錛屾帴涓嬫潵錛屾垜浠渶瑕佺敤Lua瑙i噴鍣紝鏉ュ府鍔╃悊瑙e拰瀹炶返浜嗐傜浉淇¤繖鏍蜂細鏇村揩鐨勫Lua涓婃墜浜嗐?br>銆銆灝辮薄C璇█涓鏍鳳紝Lua鎻愪緵浜嗙浉褰撳鐨勬爣鍑嗗嚱鏁版潵澧炲己璇█鐨勫姛鑳姐備嬌鐢ㄨ繖浜涙爣鍑嗗嚱鏁幫紝鍙互寰堟柟渚跨殑鎿嶄綔鍚勭鏁版嵁綾誨瀷錛屽茍澶勭悊杈撳叆杈撳嚭銆傛湁鍏寵繖鏂歸潰鐨勪俊鎭紝鎴戜滑鍙互鍙傝冦奝rogramming in Lua 銆嬩竴涔︼紝涔熷彲浠ュ湪緗戠粶涓婄洿鎺ヨ鐪嬬數瀛愮増錛岀綉鍧涓猴細http://www.lua.org/pil/index.html
銆銆
澶囨敞錛氭湰鏂囩殑閮ㄤ喚鍐呭鎽樸佽瘧鑷猯ua闅忔満鏂囨。銆?br>鐩稿叧閾炬帴錛?br>1. Lua 瀹樻柟緗戠珯錛?http://www.lua.org
2. Lua Wiki緗戠珯錛屼綘鍙互鍦ㄨ繖閲屾壘鍒板緢澶氱浉鍏崇殑璧勬枡錛屽鏂囨。銆佹暀紼嬨佹墿灞曪紝浠ュ強C/C++鐨勫寘瑁呯瓑錛?http://lua-users.org/wiki/
3. Lua 鎵撳寘涓嬭澆錛堝寘鎷悇縐嶅鉤鍙板拰緙栬瘧鍣ㄧ殑宸ョ▼鏂囦歡濡倂s2003,vs2005錛夛細http://luabinaries.luaforge.net/download.html

榪欐槸鎴戠紪璇戝ソ鐨凩ua5.02鐨勮В閲婂櫒錛?a >http://files.cnblogs.com/ly4cn/lua.zip

]]>
[杞澆]澶у瀷涓婂競娓告垙鍏徃閲嶈鑱岃兘鏋舵瀯http://m.shnenglu.com/singohgod/archive/2010/09/17/126834.html澶у疂澶╁ぉ瑙?/dc:creator>澶у疂澶╁ぉ瑙?/author>Fri, 17 Sep 2010 02:40:00 GMThttp://m.shnenglu.com/singohgod/archive/2010/09/17/126834.htmlhttp://m.shnenglu.com/singohgod/comments/126834.htmlhttp://m.shnenglu.com/singohgod/archive/2010/09/17/126834.html#Feedback0http://m.shnenglu.com/singohgod/comments/commentRss/126834.htmlhttp://m.shnenglu.com/singohgod/services/trackbacks/126834.html澶у瀷涓婂競娓告垙鍏徃閲嶈鑱岃兘鏋舵瀯 - 鏂板ソ

浣滆咃細鏂板ソ
鍗氬錛?a target=_blank>http://blog.sina.com.cn/u/1054908282?retcode=0

 

棣栧腑鎵ц瀹樸怌EO銆?/strong>

緹庡浗浜哄湪20涓栫邯60騫翠唬榪涜鍏徃娌葷悊緇撴瀯鏀歸潻鍒涙柊鏃剁殑浜х墿銆佸畠鐨勫嚭鐜板湪鏌愮鎰忎箟涓婁唬琛ㄧ潃灝嗗師鏉ヨ懀浜嬩細鎵嬩腑涓浜涘喅絳栨潈榪囨浮鍒扮粡钀ュ眰鎵嬩腑銆丆EO姒傚康鏈鏃╁嚭鐜板湪涓浜涚綉緇滀紒涓氥傚湪閭i噷CEO寰寰鏄嚜灝佺殑銆佷篃寰堝皯鏈変漢鍘葷爺絀惰繖涓縐拌皳瀵逛紒涓氬埌搴曟剰鍛崇潃浠涔堛備絾鏄紝褰?#8220;CEO”鍦ㄤ腑鍥藉彨寰楄秺鏉ヨ秺鍝嶆椂鍊欍侀珮灞備漢鍛樼О璋撴敼鍙樹笉鏄竴浠跺皬浜嬨佽绔婥EO鑱屼綅涓嶄粎浠呮槸瀵規椂灝氳拷璧躲備簨瀹炰笂錛孋EO鍋氱殑浜嬫儏閲嶇偣鍦ㄤ簬“鎵ц”銆傚ぇ澶氭暟涓浗鍏徃寰寰CEO鍋氱殑浜嬫儏鎭版伆涓嶆槸“鎵ц”錛屾洿鍍忔槸“钁d簨闀?#8221;銆?/p>


棣栧腑璐㈡斂瀹樻垨璐㈠姟鎬葷洃銆怌FO銆?/strong>

鐜頒唬鍏徃涓渶閲嶈銆佹渶鏈変環鍊奸《灝栫鐞嗚亴浣嶄箣涓銆佹帉鎻$潃浼佷笟紲炵粡緋葷粺(璐㈠姟淇℃伅)鍜岃娑茬郴緇?鐜伴噾璧勬簮)鐏甸瓊浜虹墿銆傚仛涓鍚嶆垚鍔烠FO闇瑕佸叿澶囦赴瀵岄噾铻嶇悊璁虹煡璇嗗拰瀹炲姟緇忛獙銆傚叕鍙哥悊璐笌閲戣瀺甯傚満浜や簰銆侀」鐩及浠楓侀闄╃鐞嗐佷駭鍝佺爺鍙戙佹垬鐣ヨ鍒掋佷紒涓氭牳蹇冪珵浜夊姏璇嗗埆涓庡緩绔嬪強媧炴倝淇℃伅鎶鏈強鐢靛瓙鍟嗗姟瀵逛紒涓氬啿鍑葷瓑閮芥槸CFO鑱岃矗鑼冨洿鍐呬簨銆傚ぇ鍨嬪叕鍙歌繍浣滀腑CFO鏄┛鎻掑湪閲戣瀺甯傚満鎿嶄綔鍜屽叕鍙稿唴閮ㄨ儲鍔$鐞嗕箣闂磋鑹層傛媴褰揅FO浜烘墠澶у鏄嫢鏈夊騫村湪閲戣瀺甯傚満椹伴獘緇忛獙鐨勪漢銆傚湪緹庡浗浼樼鐨凜FO甯稿父鍦ㄥ崕灝旇鍋氳繃鎴愬姛鍩洪噾緇忕悊浜恒?/p>


棣栧腑钀ヨ繍瀹樸怌OO銆?/strong>

璐熻矗鍏徃鏃ュ父钀ヨ繍銆佽緟鍔〤EO宸ヤ綔銆備竴鑸潵璁睠OO璐熻矗鍏徃鑱岃兘綆$悊緇勭粐浣撶郴寤鴻銆佸茍浠h〃CEO澶勭悊浼佷笟鏃ュ父鑱岃兘浜嬪姟銆傚鍏徃鏈鏈夋昏鑱屽姟鍒機OO榪樿鎵挎媴鏁翠綋涓氬姟綆$悊鑱岃兘銆佷富綆′紒涓氳惀閿涓庣患鍚堜笟鍔℃嫇灞曘佽礋璐e緩绔嬪叕鍙告暣涓攢鍞瓥鐣ヤ笌鏀跨瓥銆佺粍緇囩敓浜х粡钀ャ佸崗鍔〤EO鍒跺畾鍏徃涓氬姟鍙戝睍璁″垝銆佸鍏徃緇忚惀緇╂晥榪涜鑰冩牳銆備篃鏈夋妸榪愯惀鎬葷洃縐板懠涓篊OO鐨勩?/p>


棣栧腑甯傚満瀹樸怌MO銆?/strong>

鎸囧競鍦烘葷洃


棣栧腑鎶鏈畼銆怌TO銆?/strong>

鎶鏈葷洃


閿鍞葷洃銆怌SO銆?/strong>

娓犻亾閿鍞葷洃


鍏叧鎬葷洃銆怌PO銆?/strong>

鏀垮簻浜嬪姟銆佸獟浣撱侀噸瑕佸叕鍙鎬笌浜虹墿鍏叡鍏崇郴錛屼富瑕佹槸鎼炲畾浜恒?/p>


棣栧腑淇℃伅瀹樸怌IO銆?/strong>

澶у鏁板叕鍙告妸榪欎釜鑱屼綅鍙樻垚浜嗙洴浜虹洴紲紝鏈夌偣璞℃槑鏈濇椂鍊欑殑“涓滃巶”錛屾墍浠ヨ涓浗鏄釜寰堢濂囩殑鍥藉銆?/p>


寮鍙戞葷洃銆怌DO銆?/p>

浜轟簨鎬葷洃 銆怌HO銆?/p>

棣栧腑鍝佺墝瀹樸怌BO銆?/p>

棣栧腑鏂囧寲瀹樸怌CO銆?/p>

棣栧腑鐭ヨ瘑瀹樸怌KO銆?/p>

棣栧腑璋堝垽瀹樸怌NO銆?/p>

璐ㄩ噺鎬葷洃銆怌QO銆?/p>

璇勪及鎬葷洃銆怌VO銆?/p>


棣栧腑鍙戣█浜恒怌AO銆?/strong>

涓撻棬璐熻矗瑙g瓟濯掍綋銆佸烘潈浜哄拰鐢ㄦ埛絳夋湁鍏抽棶棰樿闂?/p>


棣栧腑鍟嗕笟璁″垝瀹樸怌BO銆?/strong>

棣栧腑璐㈠姟瀹樺姪鐞嗕箣涓銆佷笓闂ㄩ拡瀵逛笉鍚屾姇璧勪漢鍒惰鐩稿簲BP銆?/p>


棣栧腑鎴愭湰鎺у埗瀹樸怌CO銆?/strong>

鍑¤秴榪嘪XXX鍏冧互涓婃敮鍑哄繀欏葷敱CC0鎵瑰噯銆?/p>


棣栧腑鍩熷悕瀹樸怌DO銆?/strong>

璐熻矗鍏徃鍩熷悕娉ㄥ唽銆佺綉绔欐竻鐩樻椂鍩熷悕鎷嶅崠銆佸煙鍚嶆硶寰嬬籂綰風瓑鐩稿叧闂銆?/p>


棣栧腑浜ゆ崲瀹樸怌EO銆?/strong>

涓鑸敱鍥介檯CEO鑷敱鑱旂洘闅忔椂鏇存崲銆佸父璁劇煭鏈熻亴鑳藉矖浣嶃佺被浼艱凍鐞冩暀緇冦?/p>


棣栧腑鏂歸拡鍒惰瀹樸怌GO銆?/strong>

瑙勫垝鍏徃瀹忎紵钃濆浘銆佷竴鑸槸5騫翠互鍚庣洰鏍囥?/p>


棣栧腑鍗忚皟瀹樸怌HO銆?/strong>

璋冭В鎶曡祫鑰呭拰緇忚惀鑰呬箣闂寸殑鍐茬獊銆佺‘淇濆叕鍙稿唴閮ㄧ煕鐩句笉瑕佹硠闇層?/p>


棣栧腑媯鏌ュ畼銆怌IO銆?/strong>

媯鏌ュ叕鍙稿唴閮ㄥ伐浣滅姸鍐點佺洃鐫e憳宸ュ伐浣滄佸害銆?/p>


棣栧腑鎵ф硶瀹樸怌JO銆?/strong>

瑙e喅鍐呴儴鍔寵祫綰犵悍銆佸寘鎷憳宸ュ闄嶈柂銆佽緸閫琛ュ伩絳夋墍寮曡搗闂銆?/p>


緗戠粶榪炴帴涓撳憳銆怌KO銆?/strong>

鏈綣佸繖鐨勫矖浣嶄箣涓銆佸綋涓浗鐢典俊緗戠粶榪炴帴涓柇鏃跺強鏃跺悜鍛樺伐閫氭姤銆?/p>


棣栧腑寰嬪笀銆怌LO銆?/strong>

璐熻矗鍏徃琚帶渚墊潈鏃跺簲璇変互鍙婂悇縐嶅悎鍚屾枃鏈鏍搞備富瑕佹槸鐏漢鐨勬墦鎵嬨?/p>


棣栧腑濯掍綋瀹樸怌MO銆?/strong>

淇濇寔鍜屽獟浣撲箣闂村弸濂藉叧[鏉ユ簮錛欸ameRes.com]緋諱負鍏徃闅忔椂鍙戝竷鏂伴椈鍋氬噯澶囷紝綾諱技棣栧腑浠h〃銆?/p>


棣栧腑鏂伴椈瀹樸怌NO銆?/strong>

鍚戝獟浣撴姭闇插叕鍙歌榛戙佽鍛樸佽鏀惰喘絳夐噸澶ф柊闂匯備竴鑸敱鍏徃甯傚満鎬葷洃鎷呬換錛岀被浼兼斂搴滈儴闂ㄦ柊闂誨彂璦浜猴紝涓昏鐢卞徃闀跨駭閮ㄩ棬棰嗗鎷呬換錛屽叕鍙稿0闊崇殑緇熶竴鍑哄彛銆?/p>


棣栧腑闅愮瀹樸怌PO銆?/strong>

璐熻矗鍏徃鍐呴儴鍛樺伐Email銆両CQ銆丱ICQ絳夐氫俊鍐呭鐩戞帶銆?/p>


鏁伴噺鎸囨爣緙栭犱笓瀹躲怌QO銆?/strong>

璐熻矗娉ㄥ唽鐢ㄦ埛鏁伴噺銆侀〉闈㈡祻瑙堛佽惀涓氭敹鍏ョ瓑鎸囨爣緙栭犮?/p>


棣栧腑瑁佸憳瀹樸怌RO銆?/strong>

璐熻矗涓庤鍛樻湁鍏充簨鍔°佺洿鎺ュ悜鑲′笢澶т細璐熻矗銆佸寘鎷懀浜嬮暱鍦ㄥ唴閮戒笉寰楀共棰勫伐浣溿?/p>


棣栧腑鎴樼暐瀹樸怌SO銆?/strong>

鐢卞凡緇忛浣嶅叕鍙鎬富瑕佸垱寤轟漢鎷呬換錛屽湪鏀垮簻鏈哄叧涓鑸О涓鴻皟鐮斿憳鎴栭【闂?/p>


棣栧腑鑱旂洘瀹樸怌UO銆?/strong>

浠ユ垬鐣ヨ仈鐩熷悕涔変笓闂ㄥ鎵炬湁鏀惰喘鑷繁鎰忓悜鐨勫叕鍙搞?/p>


鎶曡祫鑰呭叧緋匯怌VO銆?/strong>

棣栧腑璐㈠姟瀹樺彟涓閲嶈鍔╃悊銆?/p>


棣栧腑緗戠粶鍐欐墜銆怌WO銆?/strong>

璐熻矗灝嗗皬浜嬫墿澶у寲銆侀氳繃鐐掍綔杈懼埌鎵╁ぇ鍏徃鍚嶅害鐩殑錛屽盡鐢ㄦ枃浜猴紝姣斿緇欓檲澶╂ˉ錛屽彶鐜夋煴緙栨晠浜嬶紝閫犵銆?/p>


褰㈣薄浠h█浜恒怌XO銆?/strong>

錛堜腑鍥界壒鏈夛級涓鑸敱瀛﹀巻涓嶉珮涓旀病鏈変粈涔堢綉緇滅煡璇嗙殑騫磋交浜烘媴浠匯?/p>


鍏徃鍏冭併怌YO銆?/strong>

鑽h獕縐板彿鎺堜簣鍦ㄥ叕鍙稿伐浣滄弧X騫村憳宸ワ紙閫氬父絀虹己錛夈?br>



]]>[杞澆]緗戞父鏁版嵁瑙i噴http://m.shnenglu.com/singohgod/archive/2010/09/17/126833.html澶у疂澶╁ぉ瑙?/dc:creator>澶у疂澶╁ぉ瑙?/author>Fri, 17 Sep 2010 02:38:00 GMThttp://m.shnenglu.com/singohgod/archive/2010/09/17/126833.htmlhttp://m.shnenglu.com/singohgod/comments/126833.htmlhttp://m.shnenglu.com/singohgod/archive/2010/09/17/126833.html#Feedback0http://m.shnenglu.com/singohgod/comments/commentRss/126833.htmlhttp://m.shnenglu.com/singohgod/services/trackbacks/126833.html鍋氱綉娓哥殑,褰撶劧瑕佹噦鐐硅繖浜涚煡璇?br>
緗戞父鏁版嵁瑙i噴

浣滆咃細鏂板ソ
鍗氬錛?a target=_blank>http://blog.sina.com.cn/u/1054908282?retcode=0

 

銆愮敤鎴鋒暟閲?-娉ㄥ唽鐢ㄦ埛銆?/font>涓嶅悓欏圭洰娉ㄥ唽鐢ㄦ埛璐ㄩ噺瀹屽叏涓嶅悓錛岃繍钀ュ晢緇欏嚭涓嶇湡瀹炴暟鎹紝閭f暟鎹皟鏌ユ姤鍛婄湡瀹炴у憿錛熸牴鏈病鏈夋槑鐧界敤鎴瘋川閲忕殑鎰忎箟銆?br>
銆愬湪綰夸漢鏁般戙愭渶楂樺湪綰褲?/font>鏌愪釜鏃墮棿鑳借揪鍒扮殑鏈楂樺湪綰褲?br>
銆愭椿璺冧漢鏁般?/font>鍏鋒湁嬈洪獥鎬х殑鏁板瓧錛屽繀欏繪槸“姣忔棩媧昏穬鐢ㄦ埛”“姣忓懆媧昏穬鐢ㄦ埛”“姣忔湀媧昏穬鐢ㄦ埛”“姣忓媧昏穬鐢ㄦ埛”“鏈榪戝灝戝ぉ鍐呮椿璺冪敤鎴?#8221;絳夈傚湪榪欐鏃墮棿鍐呰繘鍏ユ父鎴忕殑浜恒?br>
銆愭瘡涓椿璺冪敤鎴峰鉤鍧囧湪綰挎椂闂淬?/font>涓婇潰璇翠簡媧昏穬鐢ㄦ埛鏁幫紝濡傛灉娌℃湁鏈暟鎹笂闈㈤偅涓篃娌℃湁鎰忎箟銆佹瘡涓敤鎴烽兘鍦ㄧ嚎2鍒嗛挓椹笂灝變笅綰匡紝媧昏穬鐢ㄦ埛浠峰兼槸澶氬皯鍛紵鑳藉拰涓婄嚎灝卞崄鍑犱釜灝忔椂鍦ㄧ嚎鐜╁絳夊間箞錛?/p>


銆愭父鎴忓鉤鍧囧湪綰夸漢鏁般?/font>
1銆?4灝忔椂鍐呭鉤鍧囧湪綰夸漢鏁幫紝鏁版嵁閲囨牱鏃墮棿瓚婂瘑闆嗚秺綺劇‘銆?/p>

2銆佷笉鍚屾父鎴忔瘡涓鉤鍧囧湪綰挎槸鐢變笉鍚屾暟閲忕敤鎴烽犲氨鐨勩備竴涓ソ娓告垙鍙互澶ч噺綺樹綇鐜╁闀挎椂闂磋垗涓嶅緱涓嬬嚎銆?/p>

3銆佸鏋滄椿璺冪敤鎴鋒瘡嬈′笂綰垮鉤鍧囧湪綰?灝忔椂錛岄偅涔堥渶瑕?涓椿璺冪敤鎴峰鍔?涓鉤鍧囧湪綰匡紝濡傛瘡嬈″彧璁╃敤鎴風帺娓告垙5鍒嗛挓灝辮蛋浜嗭紝鍝曟父鎴忛潪甯稿ソ鐢ㄦ埛姣忓ぉ閮戒笂鏉?鍒嗛挓錛岄偅涔堝繀欏繪湁60/5*24=288涓椿璺冪敤鎴鋒墠鑳借揪鍒?涓鉤鍧囧湪綰夸漢鏁般傝鏍規嵁鎯呭喌鍒ゆ柇鎺ㄥ箍媧昏穬鐢ㄦ埛瀹規槗錛岃繕鏄鍔犳父鎴忕矘鐫鏇村鏄撱?/p>


銆愬鉤鍧囧湪綰褲佹繪敞鍐岀敤鎴楓佹椿璺冧漢鏁板強鏈楂樺湪綰挎瘮渚嬨?/font>
鏇劇粡鏈変笓瀹惰鏄痻xxx鏄?%錛寈xxx鏄?.7%絳夛紝浠栦滑鍙兘閽堝鏌愭鑳芥帴瑙﹀埌鐨勭綉娓告暟鎹屾潵錛屽鏋滀笉鐭ラ亾鏁版嵁鏄湪浠涔堟潯浠朵笅浜х敓鐨勶紝姣忔浜у搧閮戒笉涓鏍楓佹瘮渚嬮殢鐫涓嶅悓甯傚満銆佷笉鍚屼駭鍝併佷笉鍚屾笭閬撱佷笉鍚屾湇鍔′細瀵艱嚧綺劇‘鏁版嵁鍜屾瘮渚嬪畬鍏ㄤ笉涓鏍楓傚摢鎬曚竴妯′竴鏍蜂駭鍝侀兘鍙兘瀹屽叏涓嶄竴鏍鋒暟鎹紝鍒漢娉ㄥ唽100涓囩敤鎴瘋兘鏈?涓囧湪綰匡紝涓嶄唬琛ㄤ綘瀹d紶娉ㄥ唽100涓囦篃鏈?涓囥傚悇鏂歸潰緇嗚妭澶錛岃祫鏈寰堝皯鍏ㄩ潰鐪嬫垚鍔熷垱涓氳呮墍浠樺嚭鐨勫姫鍔涖?/p>


銆怉rpu鍊煎畾涔変箣浜夈?/font>
1銆佹湁浜鴻鏄瘡涓秷璐圭敤鎴風殑姣忔棩鑺辮垂銆?br>2銆佹湁浜鴻鏄瘡涓椿璺冪敤鎴風殑姣忔湀鑺辮垂銆?br>3銆佷笂甯傚叕鍙歌儲鎶ユ暟鎹畾涔夛細浜у搧姣涙敹鐩?騫矨PA/arpu錛岃涔堝鍔燗PA鏁伴噺錛岃涔堝鍔燗RPU銆傚浜庤繍钀ュ晢瑕佹牴鎹灝戝鉤鍧囧湪綰跨‘瀹氭湇鍔″櫒銆佸甫瀹姐佸鎴鋒湇鍔°侀渶瑕佸灝戞帹騫挎垚鏈墠鑳界瘡璁″鉤鍧囧湪綰跨瓑榪愯惀鎴愭湰銆?br>
銆愭敹璐規ā寮忓浐瀹氬箋?/font>
寰堝ソ綆楋細姣忓皬鏃?姣涳紙鎴栫偣鍗″畾浠鳳級*24灝忔椂*30澶?288鍏?鏈堬紝涓嬈劇櫨涓囧湪綰挎敹璐圭綉娓稿ぇ鑷存敹鍏ユ槸1000000*288錛屾瘡鏈?.88浜挎瘺鏀跺叆錛堟湁寰堝灝忔暟瀛楋紝濡傚厤璐逛嬌鐢ㄦ湡鐢ㄦ埛姣斾緥瀵艱嚧鐪熷疄鍊煎噺灝戙佸悇縐嶅洜绱犲鑷村厤璐規父鎴忕敤鎴鋒瘮渚嬪鑷寸湡瀹炴敹鍏ュ噺灝戙佺敤鎴瘋喘涔扮偣鍗″緢澶氫漢娌$敤瀹屽鑷寸湡瀹炴敹鍏ュ澶氾紝娓犻亾鍘嬩簡璐ф渶鍚庢病鏈夐瀵艱嚧鏀跺叆澧炲絳夛級銆?/p>


銆愬厤璐瑰埗鍔ㄦ乤rpu鍊箋?/font>
1銆佸ぇ澶氭暟緗戞父閮藉湪瀛︿範鍏嶈垂妯″紡錛屽埄鐢ㄦ敹璐歸亾鍏風瓑鐩堝埄錛宎rpu鍊煎ぇ灝忓叧緋誨埌鐢熷瓨鐨勯噸瑕佹寚鏍囥?/p>

2銆佸緢澶氭劊澶撮潚鍚澶у笀瀹d紶鍏嶈垂妯″紡錛岃繛鍏嶈垂妯″紡鏁版嵁閮戒笉娓呮鎯呭喌涓嬪嚟鎰熻鍧氬畾璁や負鍏嶈垂妯″紡鏄疆嫻併佽秼鍔褲傞檲澶╂ˉ涓嶇湅浜у搧鏁版嵁錛岄亾鍏鋒敹璐瑰鍔犲埌鍙浛浠f敹璐規ā寮忥紝灝卞嚟鐏靛厜涓闂妸姣忓搴﹀嚑浜挎椂闂寸偣鍗$粰鎵斾簡錛熺湅鍒拌繖涓ゅ勾鏉ョ洓澶т粠鍏嶈垂妯″紡璧氬彇瓚呰繃鏀惰垂妯″紡榪樻槸鏈夌憰鐤電殑錛岃嚦灝戝湪綰夸漢鏁版病鏈夋寜鐩涘ぇ鎯寵薄鐨勫ぇ騫呭害澧炲姞銆?/p>


銆愭敹璐瑰埗銆?/font>
鎺ㄥ箍1涓敹璐瑰埗娓告垙鍦ㄧ嚎鐢ㄦ埛榪滄瘮鎺ㄥ箍N涓厤璐規父鎴忓湪綰跨敤鎴鋒洿鍔犲洶闅撅紝鍏嶈垂妯″紡arpu鍊煎ぇ浜庢敹璐規ā寮忔椂錛岃嚜鐒跺厤璐規ā寮忚姣旀敹璐規ā寮忔洿濂姐?br>
銆愭帹騫挎垚鏈?/font>
1銆佹墦綆楄姳澶氬皯閽卞浼犳帹騫夸駭鍝併?br>2銆侀櫎浜嗚祫閲戣繕瑕佽冭檻浜哄姏鎴愭湰鍜屾椂闂存垚鏈?br>3銆佷粩緇嗚綆楁瘡涓湪綰跨敤鎴鋒帹騫挎垚鏈紝鑺卞灝戦挶鎵嶈兘澧炲姞1涓鉤鍧囧湪綰褲?br>4銆佸ぇ閮ㄥ垎鎯呭喌涓?涓鉤鍧囧湪綰縜rpu鍊間綆浜?涓鉤鍧囧湪綰挎帹騫挎垚鏈傚鑳芥壘鍒板粔浠鋒帹騫挎柟寮忓鍔犲湪綰匡紝璐圭敤浣庝簬鐢ㄦ埛arpu鍊鹼紝鍒姽璞刀绱ф帹騫垮惂銆?br>
銆愭帹騫挎晥鏋溿?/font>
1銆佷綔涓哄競鍦轟漢鍛樻槸鎺屾彙姣忕钀ラ攢鏂瑰紡鏁堟灉鏁版嵁銆傛湁澶氬皯浜鴻兘鐪嬪埌騫垮憡A錛屾湁澶氬皯鐩爣鐢ㄦ埛鐪嬪埌騫垮憡銆佸紩璧峰灝戠洰鏍囩敤鎴瘋浣忋佽澶氬皯鐩爣鐢ㄦ埛鎰熷叴瓚c佸灝戠敤鎴峰皾璇曘佸墿涓嬫槸浜у搧鏈韓鍜屽鎴鋒湇鍔$殑浜嬨傚涓競鍦烘潵璇存拻璋庝笉鏄己鐐廣佹棤娉曡鏇村鐢ㄦ埛鏉ュ皾璇曚駭鍝佹墠鏄け璐ャ?/p>

2銆佹敞鎰忎互涓婇儴鍒嗘暟鎹紝涓嶈杞繪槗鐩鎬俊騫垮憡鍟嗙瀻鍚癸紝鑷繁鎺屾彙鐨勬暟鎹墠鏄渶鐪熷疄涓嶄細嬈洪獥浣犵殑銆?/p>

3銆佺簿紜帉鎻″悇縐嶈惀閿鏂瑰紡鏁堟灉鏁版嵁錛岀浉淇′綘涓嶄細闅忎究涔辮姳閽憋紝鎷嶇潃鑴戠摐瀛愬氨涓婁竴浜涙т環姣斾笉鍚堥傜殑騫垮憡銆?/p>


銆愬競鍦烘綔鍔涘垎綰с?/font>
涓嶈瀹氫箟涓涓仴涓嶅彲鍙婄殑甯傚満鐩爣錛屼緥濡傚叏涓栫晫鏈夊灝戜漢錛屾瘡涓漢閮介渶瑕佷綇鎴匡紝鑰屼綘鏄釜鏈夋埧鍦頒駭鎯蟲硶鐨勫勾杞諱漢錛屼綘鍛婅瘔鍒漢浣犵殑甯傚満鐩爣鏄灝戜嚎浜垮叏鐞冪敤鎴風殑鎴夸駭銆傝繖鏍風洰鏍囨槸娌℃湁鎰忎箟鐨勩傚彲鎵ц鐨勭洰鏍囨槸寰堥噸瑕佺殑錛屽彧瑕佹槸鍙墽琛屽摢鎬曞湪鏃佷漢鐪奸噷鐪嬭搗鏉ュ緢鐙傚錛屼篃娌℃湁浠涔堜笉鍙互銆?/p>


銆愯繍钀ョ綉緇滄父鎴忎竴瀹氳鐭ラ亾鍒嗙駭銆?/font>
1. 鍙互鐩存帴鎺ㄥ箍鍒扮殑閭d簺浜猴紵鎵嬫妸鎵嬶紝鎴栬呴氳繃浣犵殑涓漢濯掍綋錛堣█浼犺韓鏁欙級
2. 鑳藉湪浣犳墍鎷ユ湁棰勭畻鍐呮帶鍒跺摢浜涘獟浣擄紝鍋氬摢浜涗簨鎯咃紝鏈夊灝戠敤鎴蜂細鍥犱負鎬庢牱瀹d紶鍐呭鑰屽皾璇?br>3. 榪樻湁鍝簺璧勬簮錛屽摢浜涙湅鍙嬫敮鎸侊紝甯姪錛屽湪浣犳墍鎷ョ殑棰勭畻鍐呰兘甯綘鎵撳紑鍝簺甯傚満銆?br>4. 浜烘墠錛岃兘鍚︽壘鍒版瘮浣犳洿浼樼鐨勪漢鎵嶃佷笓瀹跺府鍔╀綘瀹d紶銆佹帹騫挎墿澶у競鍦?/p>


銆愮敤鎴風兢鍒嗙駭涓句緥銆?/font>
1銆侀潪甯稿叧娉ㄤ綘鐨勪駭鍝佺綉娓哥敤鎴鋒渶鍙兘鎴愪負浣犵殑鐢ㄦ埛
2銆佸浼犳帹騫垮茍寮曡搗浠栦滑娉ㄦ剰鐨勭綉緇滄父鎴忕敤鎴?br>3銆佸埌澶勫鎵炬柊娓告垙鐨勭綉緇滄父鎴忕敤鎴?br>4銆佸悓綾葷綉緇滄父鎴忕殑鐢ㄦ埛
5銆佸紓綾葷綉緇滄父鎴忕殑鐢ㄦ埛


銆愭墍鏈変漢銆?/font>浠ヤ笂鍒嗙駭涓嶄竴瀹氬噯紜紝涓嶄竴瀹氶傚悎浣狅紝瀵逛簬浣犲緢鍙兘姣忕駭闇瑕佹姇鍏ユ垚鏈笉涓鏍鳳紝娌℃湁鍙茬帀鏌變袱涓嚎灝變笉瑕佸紑濮嬫妸鐩爣鐢ㄦ埛瀹氫箟涓烘墍鏈変漢鑰屽幓鎵撳叏鍥藉箍鍛婏紝鍚﹀垯浼氬彂鐜版姇鍏ユ垚鏈竴瀹氭敹涓嶅洖鏉ャ?/p>


銆愮洰鏍囧競鍦哄畾涔夈?/font>
1銆佹瘡涓漢閮芥兂浜у搧鍗犻鏈澶ф渶澶氬競鍦猴紝鐢卞悇鏂歸潰鏉′歡鏈夐檺蹇呴』鎸夊甯傚満鍒嗙駭錛屽垎鏋愮洰鍓嶉樁孌佃兘瑕嗙洊鐩爣甯傚満銆?/p>

2銆佽繎涓ゅ勾寰堢伀綰㈡搗鍜岃摑嫻鋒蹇點?br>
3銆佸噯紜畾浣嶅競鍦恒佺粏鍒嗗競鍦虹洰鐨勬槸闄嶄綆甯傚満鎺ㄥ箍鎴愭湰錛屽鍔犳帹騫挎湁鏁堢▼搴︺傚鏋滄湁瓚沖鐨勬帹騫挎垚鏈紝浣犺嚜鐒跺彲浠ュ鍋氭硾濯掍綋錛屽箍澶у鍔犵煡鍚嶅害錛屽浼犻潰銆?/p>


銆愭祦澶辯巼銆?/font>寰堝鏄撹閬楀繕鍗村紓甯擱噸瑕侊紝鍐沖畾娓告垙鐢熸閲嶈鏁版嵁錛屽競鍦烘帹騫垮ソ涓嶅鏄撴媺鐨勭帺瀹剁暀涓嶇暀寰椾綇銆?br>銆愬垵鏈熸祦澶辯巼銆?/font>灝濊瘯鐢ㄦ埛杞彉涓烘垚鐔熸椿璺冪敤鎴鳳紝鎵闇鑰楄垂鐨勬椂闂?br>銆愯嚜鐒舵祦澶辯巼銆?/font>鎴愮啛媧昏穬鐢ㄦ埛鑷劧嫻佸け鐜囷紝浜у搧濂藉潖錛屽唴娑典赴瀵屾渶澶х▼搴﹀喅瀹氱潃鑷劧嫻佸け鐜囬珮浣庛?/p>


1銆佷駭鍝佹湰韜湁寰堝闂灝嗕細甯︽潵闈炲父楂樿嚜鐒舵祦澶辯巼錛屼駭鍝佺殑鐢婚潰銆佹搷浣溿佸悇鏂歸潰緇嗚妭閮芥槸鍏崇郴鍒頒駭鍝佸搧璐ㄧ洿鎺ュ紑鍙戝洜绱犮?/p>

2銆佸緢澶氭父鎴忎漢閮藉垎鏋愩婃ⅵ騫昏タ娓搞嬩粠鎶鏈?span style="DISPLAY: none; FONT-SIZE: 0px">[鏉ユ簮錛欸ameRes.com]灞傞潰瀹屽叏娌℃湁浼樺娍浜у搧涓轟綍榛忕潃搴﹂偅涔堥珮錛屾祦澶辯巼閭d箞浣庛傛父鎴忓唴娑墊槸鏈閲嶈鐨勫洜绱狅紝榪欏叧緋誨埌娓告垙鐢熷懡鍛ㄦ湡銆傚鏋滅帺瀹舵妸鎵鏈夊唴瀹歸兘鍏ㄩ儴鐜╁埌闇瑕?涓湀錛岄偅涔?涓湀灝辨槸緗戠粶娓告垙姣忎釜鐢ㄦ埛鐢熷懡鍛ㄦ湡錛屽綋鐜╁鎰熻娌℃湁鍙帺鍐呭鏃朵粬鑷劧浼氱寮銆傛湁鐨勬父鎴忔槸鍙互璁╃帺瀹剁帺鍑犲勾榪樻湁鏂板唴瀹癸紝鏈夌殑娓告垙铏界劧濂戒絾鏄敓鍛藉懆鏈熺煭銆傜幇鍦ㄦ湁瓚婃潵瓚婂娓告垙瀛︿細鍒╃敤寰幆浠誨姟錛屾垨闅忓嵆鐢熸垚浠誨姟澧炲姞鐢熷懡鍛ㄦ湡
3銆佺綉娓稿紑鍙戣呬笉瑕佸啿鐫綆鍗曟柊姒傚康鍋氭父鎴忥紝涓嶆槸鍋氬櫛澶達紝鍋氭湁鍐呮兜鐨勫ソ娓告垙錛屽厖鍒嗗埄鐢ㄤ綘鐨勬妧鏈洟闃熷疄鐜版晥鏋滐紝鑰屼笉鏄洸鐩笓闂ㄦ悶鏁堟灉鎼炲櫛澶達紝璁╃敤鎴蜂箰鎰忕暀鍦ㄦ父鎴忛噷闈€?/p>


銆愬鎴鋒湇鍔°?/font>寰堥噸瑕佷綔鐢ㄦ槸鍑忓皯嫻佸け鐜囷紝娌℃湁瀹㈡埛鏈嶅姟娓告垙灝嗕笉鍙伩鍏嶆墿澶ф祦澶辯巼錛屾祦澶辯巼澶х浠欎篃娌″緱鏁戙傜洓澶х涓絎旀敹鍏ョ敤鏉ュ緩绔嬪鎴鋒湇鍔′腑蹇冧負浜嗕粈涔堬紵鍟嗕笟鏁版嵁涓婅灝辨槸闄嶄綆嫻佸け鐜囥?/p>


銆愮嚎涓婃椿鍔ㄣ?/font>閫氳繃媧誨姩錛堝彲鑳芥槸鏂頒換鍔°佺瓥鍒掓椿鍔ㄣ佸鏈嶆墽琛屾椿鍔級涓存椂鎬у鍔犳媺楂樺湪綰匡紝鍑忕紦鎴栭樆姝㈢煭鏃墮棿鍐呯帺瀹舵祦澶便?/p>


銆愮敤鎴瘋嚜鐒跺闀跨巼銆?/font>鍦ㄦ帹騫夸笅澧炲姞1涓鉤鍧囧湪綰挎垚鏈綆浜庛愮敤鎴穉rpu鍊箋?銆愬鉤鍧囨瘡涓敤鎴風敓鍛藉懆鏈熴戙傚彲浠ヤ笉鏂寔緇鍔犵敤鎴鋒儏鍐典笅銆佹柊榪涘叆鐜╁澶т簬浜у搧嫻佸け鐜囧氨榪涘叆婊氶洩鐞冩晥搴斾簡銆傚ぇ澶氭暟浜у搧涓鍋滄澶ц妯℃帹騫挎垚鏈姇鍏ユ祦澶辯巼閮借繙澶т簬澧為暱鐜囥傚緢澶氶」鐩湪鍒濇湡鐐掍綔鍚庡緢蹇敤鎴鋒暟閲忛檰緇祦澶憋紝鏈鍚庝笉寰椾笉鍊掗棴鐨勫師鍥犮?/p>


銆愭敹鍏ユ綔鍔涘箋?/font>鍜宎rpu鍊肩煕鐩劇殑鍊鹼紝arpu鍊艱秺浣庤瘉鏄庢綔鍔涜秺澶э紝arpu鍊艱秺楂樺弽鑰岃鏄庣浉鍚岀敤鎴鋒暟閲忎笅鏀跺叆澧為暱娼滃姏灝忋傛湁浜涘叕鍙革紙榪樻病鎵懼埌鐩堝埄妯″紡鍗存湁杈冨鐢ㄦ埛鐨勭綉绔欐垨娓告垙錛夋妸榪欎釜浣滀負浠栦滑鐨勬湭鏉ュ崠鐐廣?/p>


銆愭洿澶氱粏鑺傛暟鎹?/font>鍋氬ソ娓告垙涓嶄粎浠呯湅緇撴灉鍨嬫暟鎹紝鏇村瀵逛簬寮鍙戠瓥鍒掕鐪嬭繃紼嬭蛋鍚戝瀷鏁版嵁銆?/p>


銆愪緥濡傘?/font>
1銆佹湁浜涙暟鎹彲浠ュ憡璇変綘鍦ㄦ帹騫胯繃紼嬩腑鍝釜鐜妭嫻佸け鐢ㄦ埛鏈澶氥?br>
2銆佹湁浜涙暟鎹彲浠ュ憡璇変綘銆佺帺瀹跺枩嬈㈠摢浜涚郴緇燂紝璁ㄥ帉浠涔堛傛棤璁哄枩鐖辮繕鏄鍘岄兘姣斾笉榪囥愭佸害澶辮觸銆戞紶涓嶅叧蹇冦佹楦瓙鍢寸‖銆傜帺瀹跺綺懼績絳栧垝鐨勫唴瀹規紶涓嶅叧蹇冿紝榪欐槸鏈澶辮觸鐨勭瓥鍒掋?/p>

3銆佹湁浜涙暟鎹彲浠ュ憡璇夊摢浜涙敹璐規槸鐜╁鑳藉鎺ュ彈鐨勶紙灝界鏈変簺鏀惰垂鍐呭錛岀帺瀹跺彲鑳芥案榪滀細楠傦紝浣嗘瘡澶╅兘鏈夊ぇ閲忕敤鎴峰湪浠樿垂錛屾湁浜涙敹璐圭湅璧鋒潵娌′漢楠傦紝瀹為檯涓婃牴鏈病鏈変漢浣跨敤錛岄兘瑕侀氳繃榪愯惀鏁版嵁鍒嗘瀽錛夈?br>
4銆佹湁浜涙暟鎹彲浠ュ緢娓呮鍛婅瘔浣犵敤鎴峰湪鍒烽挶銆佸湪浣滃紛銆佸湪鍒╃敤婕忔礊銆佸湪鐢ㄥ鎸傘佷慨鏀瑰皝鍖呫傚鏋滄湁鑷姩鍖栨暟鎹垎鏋愭妧鏈嚑涔庡彲浠ュ彂鐜頒紬澶氱帺瀹朵綔寮娿傛敞鎰忓彧鏄彂鐜幫紝鑳藉惁瑙e喅榪樺彇鍐充簬楂樺眰閲嶈鎬佸害鍙婃妧鏈漢鍛樿兘鍔涘拰閫熷害錛岃鐭ラ亾鑰岃繖浜涢棶棰樺嚑涔庡鑷翠簡澶ч噺娓告垙姝諱骸銆?/p>

5銆佹暟鎹緢娓呮鍛婅瘔浣犳父鎴忕粡嫻庝綋鍒舵槸鍚︾ǔ鍥猴紝娓告垙涓笉鏂鍔犵殑閲戦挶濂栧姳錛岄亾鍏烽攢鍞槸鍚﹂犳垚閫氳揣鑶ㄨ儉絳夋洿澶氱殑緇嗚妭闂銆?/p>

]]>[杞澆]寰堟湁鍙傝冩剰涔夌殑鏄懼崱鎬ц兘鎺掕姒?/title><link>http://m.shnenglu.com/singohgod/archive/2010/05/17/115566.html</link><dc:creator>澶у疂澶╁ぉ瑙?/dc:creator><author>澶у疂澶╁ぉ瑙?/author><pubDate>Mon, 17 May 2010 02:40:00 GMT</pubDate><guid>http://m.shnenglu.com/singohgod/archive/2010/05/17/115566.html</guid><wfw:comment>http://m.shnenglu.com/singohgod/comments/115566.html</wfw:comment><comments>http://m.shnenglu.com/singohgod/archive/2010/05/17/115566.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/singohgod/comments/commentRss/115566.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/singohgod/services/trackbacks/115566.html</trackback:ping><description><![CDATA[璨屼技閲囬泦浜?009騫?0鏈堝乏鍙籌紝榪樹笉鍖呮嫭ati5xxx緋誨垪<br><br> <p><font color=#ff6600><font size=3><strong>鍏ㄩ儴鎸?DMARK06榛樿鍒嗚鯨鐜囧緱鍒嗚綆?娓告垙鍐呭疄闄呭撫鏁頒笉璁$畻鍦ㄥ唴(鍥犱負NVIDIA鍜孉TI瀵規父鎴忎紭鍖栭犳垚寰楀垎涓嶅叕姝?</strong></font><font size=3><strong>鎺掑悕120鍚庣殑鏄懼崱鍥犳椂闂磋繃闀挎棤娉曟祴璇?鍙寜鍘嗗勾鏉ョ綉涓婅瘎鍒嗘帓鍚?(鎵鏈夋帓鍚嶆樉鍗″潎涓哄畼鏂瑰叕鏉塊鐜囨祴璇?.</strong></font></font></p> <p><font color=#ff0000 size=3><strong>001 NVIDIA GTX295<br>002 ATI HD4870X2<br>003 NVIDIA GTX285</strong></font><font color=#ff0000 size=3><strong><br>004 ATI HD4850X2<br>005 NVIDIA GTX280<br>006 ATI HD4870<br>007 NVIDIA GTX260<br>008 ATI HD3870X2<br>009 ATI HD4850<br>010 NVIDIA 9800GTX+=NVIDIA GTX250<br>011 NVIDIA 8800Ultra<br>012 NVIDIA 8800GTX<br>013 NVIDIA 9800GTX<br>014 ATI HD4830<br>015 NVIDIA 8800GT=NVIDIA 9800GT <br>016 NVIDIA 8800GTS<br>017 NVIDIA 8800GS 768M=NVIDIA 9600GSO 768M<br>018 NVIDIA 9600GT 512<br>019 NVIDIA 7950GX2<br>020 ATI HD2900XT<br>021 ATI HD3870<br>022 NVIDIA 8800GS 384M=NVIDIA 9600gso 384M<br>023 ATI X1950XTX <br>024 NVIDIA 7900GTX<br>025 ATI HD3850<br>026 ATI HD4670<br>027 9600GSO 512M<br>028 NVIDIA 9600GT 256<br>029 ATI X1900XTX<br>030 ATI X1950XT <br>031 NVIDIA 7950GT     <br>032 ATI 1900XT<br>033 ATI HD3690<br>034 NVIDIA 8600GTS<br>035 NVIDIA 7900GT <br>036 ATI X1800XT <br>037 ATI X1950Pro<br>038 NVIDIA 7800GTX<br>039 NVIDIA 7900GS<br>040 ATI X1950GT <br>041 ATI X1900GT <br>042 ATI X1800XL <br>043 NVIDIA 7800GT <br>044 ATI X850XT/XTPE<br>045 ATI HD3670<br>046 ATI HD4650<br>047 NVIDIA 9500GT<br>048 NVIDIA 8600GT<br>049 ATI HD3650<br>050 ATI X1800GTO <br>051 ATI X800XT/XTPE<br>052 NVIDIA 7600GT     <br>053 ATI HD2600XT<br>054 ATI X1650XT<br>055 NVIDIA 6800Ultra<br>056 NVIDIA 6800GT <br>057 NVIDIA 6800GS <br>058 ATI X800XL<br>059 ATI X850Pro <br>060 NVIDIA 6800<br>061 ATI X1650 Pro <br>062 ATI X800pro/GTO <br>063 ATI X1600XT <br>064 NVIDIA 7600GS<br>065 ATI X800SE<br>066 ATI X1300XT<br>067 NVIDIA 8500GT=NVIDIA 9400GT <br>068 ATI X1600Pro   <br>069 NVIDIA 7300GT <br>070 NVIDIA 6800XT/LE <br>071 NVIDIA 6600GT <br>072 ATI X700Pro <br>073 ATI 9800XT <br>074 ATI 9800Pro <br>075 ATI 9700Pro <br>076 ATI 9800 <br>077 S3 Chrome S27 <br>078 ATI X700 <br>079 NVIDIA 5950Ultra <br>080 ATI 9700 <br>081 NVIDIA 5900Ultra <br>082 NVIDIA 5800Ultra <br>083 NVIDIA 5900<br>084 NVIDIA 5800 <br>085 ATI X1300Pro <br>086 NVIDIA 8400GS<br>087 ATI HD2400Pro<br>088 NVIDIA 7300GS <br>089 NVIDIA 6600 <br>090 NVIDIA 5900XT <br>091 ATI X1300 <br>092 ATI X600XT <br>093 NVIDIA 7300LE<br>094 NVIDIA TI4800 <br>095 NVIDIA TI4600 <br>096 ATI 9600XT <br>097 NVIDIA TI4800SE <br>098 NVIDIA 5700Ultra <br>099 ATI 9500 256bit <br>100 9800SE 128bit <br>101 ATI X600 <br>102 ATI X550<br>103 ATI 9600Pro <br>104 NVIDIA TI4400 <br>105 ATI 9500Pro<br>106 NVIDIA 6600LE <br>107 ATI X1300SE <br>108 NVIDIA 5700 <br>109 ATI 9600 <br>110 NVIDIA 6200 <br>111 NVIDIA TI4200 <br>112 NVIDIA 5600<br>113 ATI 9550<br>114 NVIDIA 5600XT <br>115 ATI 9600SE <br>116 NVIDIA 5500 <br>117 NVIDIA 7100GS <br>118 ATI X300 <br>119 ATI 9550SE<br>120 NVIDIA 6200A<br>121 ATI 9200Pro <br>122 ATI 9000Pro <br>123 ATI 8500Pro <br>124 NVIDIA GeForce3 TI500 <br>125 ATI 8500 <br>126 ATI 8500LE <br>127 NVIDIA 5200Ultra <br>128 ATI 9200 <br>129 ATI 9250 <br>130 NVIDIA GeForce4 MX460 <br>131 NVIDIA 5200 <br>132 ATI 9000 <br>133 ATI 9200SE <br>134 NVIDIA GeForce3 TI200 <br>135 NVIDIA GeForce3 <br>136 NVIDIA GeForce4 MX 440 <br>137 ATI 7500 <br>138 ATI 7200 <br>139 NVIDIA GeForce2 Ultra <br>140 ATI 7000 <br>141 NVIDIA GeForce2 GTS <br>142 NVIDIA GeForce4 MX 420 <br>143 ATI Radeon <br>144 Voodoo5 5500 <br>145 NVIDIA GeForce2 MX 400 <br>146 NVIDIA GeForce256 <br>147 NVIDIA GeForce2 MX <br>148 Voodoo4 4500 <br>149 NVIDIA TNT2 <br>150 ATI Rage128 Pro <br>151 Voodoo3 <br>152 TNT <br>153 ATI Rage128 <br>154 NVIDIA Riva128 <br>155 ATI Rage3D Pro <br>156 Voodoo Banshee <br>157 Voodoo2 <br>158 NVIDIA Riva <br>159 ATI Rage3D <br>160 Voodoo</strong></font></p> <img src ="http://m.shnenglu.com/singohgod/aggbug/115566.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/singohgod/" target="_blank">澶у疂澶╁ぉ瑙?/a> 2010-05-17 10:40 <a href="http://m.shnenglu.com/singohgod/archive/2010/05/17/115566.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <a href="http://m.shnenglu.com/">青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品</a> <div style="position:fixed;left:-9000px;top:-9000px;"><font id="pjuwb"></font><button id="pjuwb"><pre id="pjuwb"></pre></button><sub id="pjuwb"></sub><tbody id="pjuwb"><var id="pjuwb"><address id="pjuwb"></address></var></tbody><listing id="pjuwb"><label id="pjuwb"><strong id="pjuwb"></strong></label></listing><wbr id="pjuwb"><small id="pjuwb"><tbody id="pjuwb"></tbody></small></wbr><ins id="pjuwb"><xmp id="pjuwb"></xmp></ins><style id="pjuwb"></style><label id="pjuwb"><em id="pjuwb"><li id="pjuwb"></li></em></label><samp id="pjuwb"></samp><menu id="pjuwb"><input id="pjuwb"></input></menu><pre id="pjuwb"><tbody id="pjuwb"><tfoot id="pjuwb"><button id="pjuwb"></button></tfoot></tbody></pre><form id="pjuwb"></form><i id="pjuwb"><style id="pjuwb"><label id="pjuwb"><sup id="pjuwb"></sup></label></style></i><li id="pjuwb"><table id="pjuwb"><abbr id="pjuwb"></abbr></table></li><video id="pjuwb"></video><dfn id="pjuwb"></dfn><progress id="pjuwb"></progress><strong id="pjuwb"></strong><mark id="pjuwb"></mark><em id="pjuwb"></em><tbody id="pjuwb"><p id="pjuwb"><strike id="pjuwb"><acronym id="pjuwb"></acronym></strike></p></tbody><option id="pjuwb"></option><strike id="pjuwb"></strike><u id="pjuwb"></u><td id="pjuwb"><center id="pjuwb"><tr id="pjuwb"></tr></center></td><em id="pjuwb"><mark id="pjuwb"><em id="pjuwb"><tt id="pjuwb"></tt></em></mark></em><strong id="pjuwb"></strong><wbr id="pjuwb"></wbr><s id="pjuwb"></s><strong id="pjuwb"></strong><legend id="pjuwb"></legend><nav id="pjuwb"></nav><dl id="pjuwb"><th id="pjuwb"><dl id="pjuwb"></dl></th></dl><noframes id="pjuwb"><ins id="pjuwb"></ins></noframes><font id="pjuwb"></font><strike id="pjuwb"><i id="pjuwb"><style id="pjuwb"><label id="pjuwb"></label></style></i></strike><output id="pjuwb"></output><thead id="pjuwb"><pre id="pjuwb"></pre></thead><source id="pjuwb"></source><menuitem id="pjuwb"><wbr id="pjuwb"></wbr></menuitem><pre id="pjuwb"><span id="pjuwb"><pre id="pjuwb"><big id="pjuwb"></big></pre></span></pre><cite id="pjuwb"><fieldset id="pjuwb"><s id="pjuwb"><rt id="pjuwb"></rt></s></fieldset></cite><big id="pjuwb"><progress id="pjuwb"><big id="pjuwb"></big></progress></big><samp id="pjuwb"><delect id="pjuwb"></delect></samp><dl id="pjuwb"></dl><strike id="pjuwb"><nav id="pjuwb"><dl id="pjuwb"><strong id="pjuwb"></strong></dl></nav></strike><tbody id="pjuwb"><b id="pjuwb"><optgroup id="pjuwb"><rp id="pjuwb"></rp></optgroup></b></tbody><em id="pjuwb"></em><xmp id="pjuwb"><blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote></xmp> <i id="pjuwb"><abbr id="pjuwb"><i id="pjuwb"><abbr id="pjuwb"></abbr></i></abbr></i><center id="pjuwb"><acronym id="pjuwb"><center id="pjuwb"></center></acronym></center><pre id="pjuwb"></pre><ul id="pjuwb"><thead id="pjuwb"></thead></ul><blockquote id="pjuwb"><pre id="pjuwb"><sup id="pjuwb"></sup></pre></blockquote><acronym id="pjuwb"></acronym><big id="pjuwb"><s id="pjuwb"></s></big><th id="pjuwb"></th><th id="pjuwb"></th><tbody id="pjuwb"></tbody><thead id="pjuwb"><strike id="pjuwb"></strike></thead><th id="pjuwb"><dl id="pjuwb"><wbr id="pjuwb"></wbr></dl></th><dl id="pjuwb"><strong id="pjuwb"></strong></dl><abbr id="pjuwb"><noframes id="pjuwb"><noscript id="pjuwb"></noscript></noframes></abbr><td id="pjuwb"><ol id="pjuwb"></ol></td><li id="pjuwb"><noscript id="pjuwb"><abbr id="pjuwb"></abbr></noscript></li><small id="pjuwb"><bdo id="pjuwb"><nav id="pjuwb"></nav></bdo></small><style id="pjuwb"></style><optgroup id="pjuwb"><table id="pjuwb"></table></optgroup><center id="pjuwb"><tr id="pjuwb"><dfn id="pjuwb"></dfn></tr></center><th id="pjuwb"></th><u id="pjuwb"></u><tfoot id="pjuwb"><legend id="pjuwb"><i id="pjuwb"></i></legend></tfoot><mark id="pjuwb"></mark><meter id="pjuwb"></meter><nav id="pjuwb"></nav><acronym id="pjuwb"><pre id="pjuwb"><acronym id="pjuwb"><ul id="pjuwb"></ul></acronym></pre></acronym><acronym id="pjuwb"><pre id="pjuwb"><acronym id="pjuwb"><ul id="pjuwb"></ul></acronym></pre></acronym><nobr id="pjuwb"></nobr><sub id="pjuwb"><th id="pjuwb"><menuitem id="pjuwb"><wbr id="pjuwb"></wbr></menuitem></th></sub><thead id="pjuwb"><sub id="pjuwb"></sub></thead><ul id="pjuwb"><address id="pjuwb"><menuitem id="pjuwb"><meter id="pjuwb"></meter></menuitem></address></ul><dfn id="pjuwb"></dfn><pre id="pjuwb"></pre><input id="pjuwb"><cite id="pjuwb"><fieldset id="pjuwb"></fieldset></cite></input><u id="pjuwb"><form id="pjuwb"><u id="pjuwb"></u></form></u><kbd id="pjuwb"><em id="pjuwb"><mark id="pjuwb"></mark></em></kbd><tr id="pjuwb"></tr><del id="pjuwb"><form id="pjuwb"><address id="pjuwb"></address></form></del><tfoot id="pjuwb"><legend id="pjuwb"><ol id="pjuwb"><dl id="pjuwb"></dl></ol></legend></tfoot><menu id="pjuwb"><nobr id="pjuwb"><th id="pjuwb"><nobr id="pjuwb"></nobr></th></nobr></menu><fieldset id="pjuwb"></fieldset><pre id="pjuwb"><blockquote id="pjuwb"><samp id="pjuwb"></samp></blockquote></pre><xmp id="pjuwb"><sup id="pjuwb"><pre id="pjuwb"></pre></sup></xmp><span id="pjuwb"><progress id="pjuwb"></progress></span><font id="pjuwb"></font><var id="pjuwb"><abbr id="pjuwb"></abbr></var><strong id="pjuwb"><label id="pjuwb"><i id="pjuwb"><legend id="pjuwb"></legend></i></label></strong><tr id="pjuwb"><em id="pjuwb"><em id="pjuwb"><output id="pjuwb"></output></em></em></tr><thead id="pjuwb"><strike id="pjuwb"></strike></thead> <acronym id="pjuwb"></acronym><i id="pjuwb"></i><tt id="pjuwb"></tt><rt id="pjuwb"><source id="pjuwb"><rt id="pjuwb"></rt></source></rt><strike id="pjuwb"><acronym id="pjuwb"></acronym></strike><del id="pjuwb"></del><font id="pjuwb"><output id="pjuwb"><ins id="pjuwb"><output id="pjuwb"></output></ins></output></font><kbd id="pjuwb"><tr id="pjuwb"><kbd id="pjuwb"></kbd></tr></kbd><pre id="pjuwb"><sup id="pjuwb"><delect id="pjuwb"><samp id="pjuwb"></samp></delect></sup></pre><samp id="pjuwb"></samp><track id="pjuwb"></track><tr id="pjuwb"></tr><center id="pjuwb"></center><fieldset id="pjuwb"></fieldset><i id="pjuwb"></i><td id="pjuwb"></td><rt id="pjuwb"></rt><object id="pjuwb"></object><pre id="pjuwb"><progress id="pjuwb"><sub id="pjuwb"><thead id="pjuwb"></thead></sub></progress></pre><kbd id="pjuwb"><tr id="pjuwb"><option id="pjuwb"></option></tr></kbd><output id="pjuwb"><ins id="pjuwb"></ins></output><ol id="pjuwb"></ol><source id="pjuwb"></source><strong id="pjuwb"></strong><ruby id="pjuwb"></ruby><sub id="pjuwb"><meter id="pjuwb"><menuitem id="pjuwb"><meter id="pjuwb"></meter></menuitem></meter></sub><pre id="pjuwb"></pre><center id="pjuwb"></center><tr id="pjuwb"><tbody id="pjuwb"><xmp id="pjuwb"><dd id="pjuwb"></dd></xmp></tbody></tr><video id="pjuwb"></video><pre id="pjuwb"></pre><form id="pjuwb"><optgroup id="pjuwb"></optgroup></form><samp id="pjuwb"></samp><kbd id="pjuwb"></kbd><strong id="pjuwb"><option id="pjuwb"></option></strong><object id="pjuwb"></object><abbr id="pjuwb"><noframes id="pjuwb"><abbr id="pjuwb"></abbr></noframes></abbr><ul id="pjuwb"><del id="pjuwb"><button id="pjuwb"><pre id="pjuwb"></pre></button></del></ul><abbr id="pjuwb"></abbr><strong id="pjuwb"><code id="pjuwb"><strong id="pjuwb"></strong></code></strong><option id="pjuwb"></option><optgroup id="pjuwb"><bdo id="pjuwb"><code id="pjuwb"></code></bdo></optgroup><mark id="pjuwb"><em id="pjuwb"><font id="pjuwb"></font></em></mark><acronym id="pjuwb"><code id="pjuwb"></code></acronym><dl id="pjuwb"></dl><em id="pjuwb"></em><object id="pjuwb"><input id="pjuwb"><object id="pjuwb"></object></input></object><output id="pjuwb"><dd id="pjuwb"></dd></output><option id="pjuwb"><button id="pjuwb"><option id="pjuwb"></option></button></option><small id="pjuwb"></small></div> <a href="http://621768.com" target="_blank">在线观看91精品国产入口</a>| <a href="http://hu62.com" target="_blank">久久九九热re6这里有精品</a>| <a href="http://arielteam.com" target="_blank">一区二区三区国产精品</a>| <a href="http://10669p.com" target="_blank">亚洲国产日韩精品</a>| <a href="http://wwwmm7777.com" target="_blank">亚洲国产成人精品女人久久久 </a>| <a href="http://www-216678.com" target="_blank">亚洲自拍偷拍色片视频</a>| <a href="http://luluse882.com" target="_blank">亚洲在线观看</a>| <a href="http://66669801.com" target="_blank">久久精品国产免费</a>| <a href="http://www-11688.com" target="_blank">美女主播精品视频一二三四</a>| <a href="http://www19898.com" target="_blank">女生裸体视频一区二区三区 </a>| <a href="http://lutube666.com" target="_blank">一本色道久久综合狠狠躁的推荐</a>| <a href="http://caosee.com" target="_blank">亚洲毛片在线观看</a>| <a href="http://by3259.com" target="_blank">亚洲宅男天堂在线观看无病毒</a>| <a href="http://7343888.com" target="_blank">午夜视频在线观看一区二区</a>| <a href="http://749996.com" target="_blank">久久一区二区三区四区五区</a>| <a href="http://301110.com" target="_blank">欧美三区在线观看</a>| <a href="http://oo853kj.com" target="_blank">国内精品国产成人</a>| <a href="http://haole081.com" target="_blank">av成人毛片</a>| <a href="http://bmcshy.com" target="_blank">久久精品一区蜜桃臀影院</a>| <a href="http://icciran.com" target="_blank">欧美顶级大胆免费视频</a>| <a href="http://www227ee.com" target="_blank">日韩小视频在线观看专区</a>| <a href="http://my7877.com" target="_blank">欧美专区第一页</a>| <a href="http://8p3c.com" target="_blank">欧美一区二区免费观在线</a>| <a href="http://343119.com" target="_blank">久久精品国产精品亚洲综合</a>| <a href="http://sz-jyqj.com" target="_blank">欧美不卡福利</a>| <a href="http://51winner.com" target="_blank">一区二区三区波多野结衣在线观看</a>| <a href="http://www-s8.com" target="_blank">亚洲欧美国产三级</a>| <a href="http://kk8c.com" target="_blank">欧美成人一区二区</a>| <a href="http://10669p.com" target="_blank">国产欧美一区二区色老头</a>| <a href="http://060607.com" target="_blank">亚洲美女视频网</a>| <a href="http://erosgems.com" target="_blank">国产精品久久久久久久久搜平片 </a>| <a href="http://jiucao8.com" target="_blank">国产精品天天摸av网</a>| <a href="http://51duanxinmao.com" target="_blank">欧美激情综合五月色丁香小说</a>| <a href="http://www-78733.com" target="_blank">欧美日韩国产精品一卡</a>| <a href="http://xiyan88.com" target="_blank">国产综合久久久久久鬼色</a>| <a href="http://787282.com" target="_blank">91久久精品国产91久久</a>| <a href="http://snis675.com" target="_blank">欧美在线|欧美</a>| <a href="http://wwdd44.com" target="_blank">亚洲美女精品一区</a>| <a href="http://y87b.com" target="_blank">蜜臀av性久久久久蜜臀aⅴ四虎</a>| <a href="http://a718fun.com" target="_blank">国产精品国产三级国产专播品爱网 </a>| <a href="http://www-333304.com" target="_blank">亚洲一区二区不卡免费</a>| <a href="http://2502255.com" target="_blank">欧美激情一区二区三区全黄 </a>| <a href="http://y65v.com" target="_blank">久久av最新网址</a>| <a href="http://bodabloc.com" target="_blank">欧美日本亚洲</a>| <a href="http://7628x.com" target="_blank">亚洲黄色片网站</a>| <a href="http://www-222304.com" target="_blank">久久亚洲国产精品一区二区</a>| <a href="http://zxxx3.com" target="_blank">一本大道av伊人久久综合</a>| <a href="http://www446168.com" target="_blank">麻豆av一区二区三区久久</a>| <a href="http://www9ckk1.com" target="_blank">国产一级揄自揄精品视频</a>| <a href="http://033232.com" target="_blank">亚洲午夜激情免费视频</a>| <a href="http://wwwavtb1122.com" target="_blank">亚洲国产色一区</a>| <a href="http://nztd20.com" target="_blank">亚洲欧美视频一区二区三区</a>| <a href="http://mmpzyw.com" target="_blank">国产精品v日韩精品</a>| <a href="http://www033459.com" target="_blank">亚洲精品美女</a>| <a href="http://www-49hk.com" target="_blank">亚洲福利国产精品</a>| <a href="http://qqkanp.com" target="_blank">免费成人毛片</a>| <a href="http://xb989.com" target="_blank">亚洲国产片色</a>| <a href="http://jav69me.com" target="_blank">欧美国产免费</a>| <a href="http://kk8586.com" target="_blank">美女精品自拍一二三四</a>| <a href="http://www-3121.com" target="_blank">在线电影一区</a>| <a href="http://yiqiluntan.com" target="_blank">欧美风情在线</a>| <a href="http://tizenkorea.com" target="_blank">欧美大胆人体视频</a>| <a href="http://66jj99.com" target="_blank">一本色道综合亚洲</a>| <a href="http://www-222304.com" target="_blank">日韩午夜电影av</a>| <a href="http://www218999.com" target="_blank">欧美午夜视频在线观看</a>| <a href="http://cmtqd.com" target="_blank">一区二区三区高清在线</a>| <a href="http://gzzhuangshi.com" target="_blank">亚洲美女淫视频</a>| <a href="http://6661639.com" target="_blank">欧美日韩一区在线观看视频</a>| <a href="http://www47011.com" target="_blank">亚洲视屏一区</a>| <a href="http://xaxkizlar.com" target="_blank">亚洲自拍啪啪</a>| <a href="http://xianconnector.com" target="_blank">国产亚洲美州欧州综合国</a>| <a href="http://ycgg008.com" target="_blank">久久九九精品</a>| <a href="http://wwwjuhuase.com" target="_blank">午夜精品久久久久久久99樱桃 </a>| <a href="http://hmm47.com" target="_blank">欧美一区二区日韩一区二区</a>| <a href="http://4399360.com" target="_blank">99精品99</a>| <a href="http://junmatek.com" target="_blank">国产精品另类一区</a>| <a href="http://www-333410.com" target="_blank">欧美亚洲一级片</a>| <a href="http://aidou28.com" target="_blank">性亚洲最疯狂xxxx高清</a>| <a href="http://233116.com" target="_blank">狠狠色狠狠色综合</a>| <a href="http://78757a.com" target="_blank">欧美肥婆在线</a>| <a href="http://hjaa7.com" target="_blank">亚洲综合不卡</a>| <a href="http://50ud.com" target="_blank">欧美不卡视频一区</a>| <a href="http://123086.com" target="_blank">亚洲国产美女精品久久久久∴</a>| <a href="http://eshop999.com" target="_blank">久久综合久久久</a>| <a href="http://9911444.com" target="_blank">久久午夜精品</a>| <a href="http://3c3c3c.com" target="_blank">一本色道婷婷久久欧美</a>| <a href="http://800716.com" target="_blank">亚洲一区二区三区久久</a>| <a href="http://56701sy.com" target="_blank">国产一区二区三区电影在线观看</a>| <a href="http://www-4890.com" target="_blank">久久综合五月</a>| <a href="http://ximaimicro.com" target="_blank">欧美日韩你懂的</a>| <a href="http://xingba999.com" target="_blank">欧美在线视频a</a>| <a href="http://senlin86.com" target="_blank">六月天综合网</a>| <a href="http://jjoo4.com" target="_blank">午夜影视日本亚洲欧洲精品</a>| <a href="http://211186.com" target="_blank">久久狠狠亚洲综合</a>| <a href="http://nachang5117.com" target="_blank">99视频精品全国免费</a>| <a href="http://520637.com" target="_blank">亚洲欧美日韩国产精品</a>| <a href="http://389746.com" target="_blank">亚洲高清123</a>| <a href="http://szxrdr.com" target="_blank">亚洲网在线观看</a>| <a href="http://kan0577.com" target="_blank">欧美美女福利视频</a>| <a href="http://xxdd51.com" target="_blank">国产精品久久77777</a>| <a href="http://xinghejiuye.com" target="_blank">香蕉尹人综合在线观看</a>| <a href="http://176sfsf.com" target="_blank">欧美自拍偷拍午夜视频</a>| <a href="http://guanghezixun.com" target="_blank">亚洲日本在线观看</a>| <a href="http://www47343.com" target="_blank">亚洲视频在线观看</a>| <a href="http://8332777.com" target="_blank">精品999在线播放</a>| <a href="http://www492002.com" target="_blank">99视频精品免费观看</a>| <a href="http://3bmmtv.com" target="_blank">国内精品久久久久久久97牛牛</a>| <a href="http://jdss777.com" target="_blank">欧美搞黄网站</a>| <a href="http://www033459.com" target="_blank">国产日韩欧美一区</a>| <a href="http://kongtou8.com" target="_blank">亚洲日本va午夜在线影院</a>| <a href="http://ridenimbus.com" target="_blank">国产欧美一区视频</a>| <a href="http://chunshanketang.com" target="_blank">亚洲国产一区二区在线</a>| <a href="http://www-5888c.com" target="_blank">国产日产精品一区二区三区四区的观看方式 </a>| <a href="http://yichenep.com" target="_blank">一区二区三区三区在线</a>| <a href="http://486be.com" target="_blank">久久午夜视频</a>| <a href="http://caihongie.com" target="_blank">欧美在线视频导航</a>| <a href="http://myasker.com" target="_blank">国产精品久久久久久久久久直播</a>| <a href="http://436212.com" target="_blank">亚洲国产婷婷香蕉久久久久久</a>| <a href="http://1588vip.com" target="_blank">国产欧美一区二区在线观看</a>| <a href="http://9xxpp.com" target="_blank">99人久久精品视频最新地址</a>| <a href="http://xdlot.com" target="_blank">亚洲肉体裸体xxxx137</a>| <a href="http://7777525.com" target="_blank">欧美在线资源</a>| <a href="http://00001xh.com" target="_blank">午夜一区不卡</a>| <a href="http://smdzs.com" target="_blank">国产精品国产</a>| <a href="http://www9ckk1.com" target="_blank">99精品国产在热久久下载</a>| <a href="http://042225.com" target="_blank">亚洲国产精品va</a>| <a href="http://yjjs20.com" target="_blank">欧美亚洲一区</a>| <a href="http://tuokuba520.com" target="_blank">亚洲免费在线视频</a>| <a href="http://music444.com" target="_blank">99国产精品视频免费观看</a>| <a href="http://www-188444.com" target="_blank">久久色中文字幕</a>| <a href="http://kinghongs.com" target="_blank">久久久99爱</a>| <a href="http://339254.com" target="_blank">国产三级欧美三级</a>| <a href="http://bgflee.com" target="_blank">午夜国产精品影院在线观看 </a>| <a href="http://3838418.com" target="_blank">91久久综合</a>| <a href="http://wb2014.com" target="_blank">久久艳片www.17c.com</a>| <a href="http://281191.com" target="_blank">久久影音先锋</a>| <a href="http://6666345.com" target="_blank">欲色影视综合吧</a>| <a href="http://gztgo.com" target="_blank">久久亚洲美女</a>| <a href="http://sihu121.com" target="_blank">欧美国产激情二区三区</a>| <a href="http://743627.com" target="_blank">亚洲人妖在线</a>| <a href="http://r6r4.com" target="_blank">欧美日韩 国产精品</a>| <a href="http://winkwink333.com" target="_blank">99精品国产在热久久下载</a>| <a href="http://sxhrsmjj.com" target="_blank">中国成人在线视频</a>| <a href="http://2424ddd.com" target="_blank">欧美调教视频</a>| <a href="http://sz-jyqj.com" target="_blank">亚洲综合欧美日韩</a>| <a href="http://wwwxigua66.com" target="_blank">欧美一区二区三区在线看</a>| <a href="http://8888590.com" target="_blank">国产日本欧美一区二区</a>| <a href="http://www-333410.com" target="_blank">久久国内精品视频</a>| <a href="http://zyjxyx.com" target="_blank">亚洲电影免费观看高清完整版在线观看 </a>| <a href="http://686852a.com" target="_blank">亚洲视频电影在线</a>| <a href="http://yys4.com" target="_blank">国产精品久久久久久一区二区三区</a>| <a href="http://gjjlzs.com" target="_blank">一本色道久久99精品综合</a>| <a href="http://jlkcjz.com" target="_blank">午夜精品久久久</a>| <a href="http://taotuango.com" target="_blank">国产一区二区三区高清播放</a>| <a href="http://kpd034.com" target="_blank">久久精品国产亚洲a</a>| <a href="http://luqintang.com" target="_blank">欧美激情a∨在线视频播放</a>| <a href="http://sinojinxing.com" target="_blank">亚洲三级毛片</a>| <a href="http://www672hh.com" target="_blank">国产精品久久久久久久7电影 </a>| <a href="http://jiujiuri8.com" target="_blank">久久久噜噜噜久久中文字幕色伊伊</a>| <a href="http://916969.com" target="_blank">国内精品视频在线播放</a>| <a href="http://787622.com" target="_blank">老司机午夜精品视频在线观看</a>| <a href="http://ibenbio.com" target="_blank">亚洲国产三级在线</a>| <a href="http://ssss96.com" target="_blank">欧美亚洲视频在线观看</a>| <a href="http://lucky5888.com" target="_blank">在线成人免费视频</a>| <a href="http://emu160.com" target="_blank">欧美三日本三级三级在线播放</a>| <a href="http://mxkaozi.com" target="_blank">午夜精品福利一区二区三区av</a>| <a href="http://yw6632.com" target="_blank">美国十次成人</a>| <a href="http://004ttt.com" target="_blank">这里是久久伊人</a>| <a href="http://576193.com" target="_blank">国内精品视频一区</a>| <a href="http://dusenborg.com" target="_blank">欧美激情综合在线</a>| <a href="http://mauhorng.com" target="_blank">欧美在线免费观看视频</a>| <a href="http://330310c.com" target="_blank">亚洲国产天堂网精品网站</a>| <a href="http://4923cc.com" target="_blank">亚洲欧美在线一区</a>| <a href="http://99cheats.com" target="_blank">亚洲第一伊人</a>| <a href="http://17ang.com" target="_blank">国产精品欧美激情</a>| <a href="http://www11108b.com" target="_blank">另类国产ts人妖高潮视频</a>| <a href="http://d1112.com" target="_blank">亚洲视频一起</a>| <a href="http://52sougou.com" target="_blank">欧美国产乱视频</a>| <a href="http://56myf.com" target="_blank">久久福利精品</a>| <a href="http://95gun.com" target="_blank">亚洲视频导航</a>| <a href="http://yyypdq.com" target="_blank">亚洲日本成人网</a>| <a href="http://jafzjz.com" target="_blank">国产综合色精品一区二区三区</a>| <a href="http://wogoyao.com" target="_blank">欧美精品在线观看播放</a>| <a href="http://bjopl.com" target="_blank">久久精品一区</a>| <a href="http://clgtzz.com" target="_blank">亚洲免费在线</a>| <a href="http://www-tt211.com" target="_blank">亚洲精品资源美女情侣酒店</a>| <a href="http://cn1357.com" target="_blank">久久久久久久精</a>| <a href="http://1323123.com" target="_blank">亚洲一区3d动漫同人无遮挡</a>| <a href="http://qdpetlove.com" target="_blank">亚洲成人在线免费</a>| <a href="http://sihu121.com" target="_blank">国产日韩亚洲</a>| <a href="http://www38ccc.com" target="_blank">国产精品v片在线观看不卡 </a>| <a href="http://www-188445.com" target="_blank">亚洲看片网站</a>| <a href="http://9882355.com" target="_blank">精品999成人</a>| <a href="http://lgcpvip888.com" target="_blank">国产日韩欧美麻豆</a>| <a href="http://18p2.com" target="_blank">国产精品久久网站</a>| <a href="http://gzhachi.com" target="_blank">欧美日韩天天操</a>| <a href="http://eastasp.com" target="_blank">欧美国产成人在线</a>| <a href="http://www-132377.com" target="_blank">久久久亚洲高清</a>| <a href="http://qdzhudai.com" target="_blank">欧美一区二区精品</a>| <a href="http://66889h.com" target="_blank">亚洲欧美综合国产精品一区</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>