锘??xml version="1.0" encoding="utf-8" standalone="yes"?>一区二区在线观看av,一区二区三区视频在线观看,欧美日韩另类丝袜其他 http://m.shnenglu.com/jianlinzhang/zh-cn Mon, 29 Sep 2025 19:16:19 GMT Mon, 29 Sep 2025 19:16:19 GMT 60 鍏充簬 boost 涓?VA 鐨勪竴浜涜瑙?/title> http://m.shnenglu.com/jianlinzhang/archive/2009/10/21/99091.html寮犲緩鏋?/dc:creator>寮犲緩鏋?/author>Wed, 21 Oct 2009 02:31:00 GMT http://m.shnenglu.com/jianlinzhang/archive/2009/10/21/99091.html http://m.shnenglu.com/jianlinzhang/comments/99091.html http://m.shnenglu.com/jianlinzhang/archive/2009/10/21/99091.html#Feedback 3 http://m.shnenglu.com/jianlinzhang/comments/commentRss/99091.html http://m.shnenglu.com/jianlinzhang/services/trackbacks/99091.html 浠婂ぉ錛屾垜緇堜簬鍙戠幇浜嗗叾涓殑緙樼敱錛屽師鏉ユ槸鍥犱負鎴戠殑boost鐩綍涓寘鍚殑鏈変腑鏂囧瓧絎︿覆銆傘傘傚搸錛屾病鎯沖埌鍟娿傚湪閲嶆柊璁劇疆浜哹oost鐨勭洰褰曞悗錛屼竴鍒囧氨ok浜嗐傘傘?br> 甯屾湜榪欏浜庢湁浜涘悓琛屾潵璇存湁鐐圭敤澶勩傘傘侽(∩_∩)O鍝堝搱~
]]> 鍫嗗拰鏍堢殑鍖哄埆 http://m.shnenglu.com/jianlinzhang/archive/2009/10/14/98545.html寮犲緩鏋?/dc:creator>寮犲緩鏋?/author>Wed, 14 Oct 2009 01:35:00 GMT http://m.shnenglu.com/jianlinzhang/archive/2009/10/14/98545.html http://m.shnenglu.com/jianlinzhang/comments/98545.html http://m.shnenglu.com/jianlinzhang/archive/2009/10/14/98545.html#Feedback 1 http://m.shnenglu.com/jianlinzhang/comments/commentRss/98545.html http://m.shnenglu.com/jianlinzhang/services/trackbacks/98545.html
1
鍫嗗拰鏍堢殑鍖哄埆 (杞創)
鍫嗗拰鏍堢殑鍖哄埆 (杞創) 闈炴湰浜轟綔涔?鍥犻潪甯哥粡鍏?鎵浠ユ敹褰掓棗涓?涓庝紬浜洪槄涔?鍘熶綔鑰呬笉紲? 鍫嗗拰鏍堢殑鍖哄埆 涓銆侀澶囩煡璇嗏旂▼搴忕殑鍐呭瓨鍒嗛厤 涓涓敱c/C++緙栬瘧鐨勭▼搴忓崰鐢ㄧ殑鍐呭瓨鍒嗕負浠ヤ笅鍑犱釜閮ㄥ垎 1銆佹爤鍖猴紙stack錛夆?nbsp;鐢辯紪璇戝櫒鑷姩鍒嗛厤閲婃斁 錛屽瓨鏀懼嚱鏁扮殑鍙傛暟鍊鹼紝灞閮ㄥ彉閲忕殑鍊肩瓑銆傚叾鎿嶄綔鏂瑰紡綾諱技浜庢暟鎹粨鏋勪腑鐨勬爤銆? 2銆佸爢鍖猴紙heap錛?nbsp;鈥?nbsp;涓鑸敱紼嬪簭鍛樺垎閰嶉噴鏀撅紝 鑻ョ▼搴忓憳涓嶉噴鏀撅紝紼嬪簭緇撴潫鏃跺彲鑳界敱OS鍥炴敹 銆傛敞鎰忓畠涓庢暟鎹粨鏋勪腑鐨勫爢鏄袱鍥炰簨錛屽垎閰嶆柟寮忓掓槸綾諱技浜庨摼琛紝鍛靛懙銆? 3銆佸叏灞鍖猴紙闈欐佸尯錛夛紙static錛夆旓紝鍏ㄥ眬鍙橀噺鍜岄潤鎬佸彉閲忕殑瀛樺偍鏄斁鍦ㄤ竴鍧楃殑錛屽垵濮嬪寲鐨勫叏灞鍙橀噺鍜岄潤鎬佸彉閲忓湪涓鍧楀尯鍩燂紝 鏈垵濮嬪寲鐨勫叏灞鍙橀噺鍜屾湭鍒濆鍖栫殑闈欐佸彉閲忓湪鐩擱偦鐨勫彟涓鍧楀尯鍩熴?nbsp;- 紼嬪簭緇撴潫鍚庢湁緋葷粺閲婃斁 4銆佹枃瀛楀父閲忓尯鈥斿父閲忓瓧絎︿覆灝辨槸鏀懼湪榪欓噷鐨勩?nbsp;紼嬪簭緇撴潫鍚庣敱緋葷粺閲婃斁 5銆佺▼搴忎唬鐮佸尯鈥斿瓨鏀懼嚱鏁頒綋鐨勪簩榪涘埗浠g爜銆? 浜屻佷緥瀛愮▼搴?nbsp; 榪欐槸涓涓墠杈堝啓鐨勶紝闈炲父璇︾粏 //main.cpp int a = 0; 鍏ㄥ眬鍒濆鍖栧尯 char *p1; 鍏ㄥ眬鏈垵濮嬪寲鍖?nbsp; main() { int b; 鏍?nbsp; char s[] = "abc"; 鏍?nbsp; char *p2; 鏍?nbsp; char *p3 = "123456"; 123456\0鍦ㄥ父閲忓尯錛宲3鍦ㄦ爤涓娿?nbsp; static int c =0錛?nbsp;鍏ㄥ眬錛堥潤鎬侊級鍒濆鍖栧尯 p1 = (char *)malloc(10); p2 = (char *)malloc(20); 鍒嗛厤寰楁潵寰?0鍜?0瀛楄妭鐨勫尯鍩熷氨鍦ㄥ爢鍖恒?nbsp; strcpy(p1, "123456"); 123456\0鏀懼湪甯擱噺鍖猴紝緙栬瘧鍣ㄥ彲鑳戒細灝嗗畠涓巔3鎵鎸囧悜鐨?123456"浼樺寲鎴愪竴涓湴鏂廣?nbsp; } 浜屻佸爢鍜屾爤鐨勭悊璁虹煡璇?nbsp; 2.1鐢寵鏂瑰紡 stack: 鐢辯郴緇熻嚜鍔ㄥ垎閰嶃?nbsp;渚嬪錛屽0鏄庡湪鍑芥暟涓竴涓眬閮ㄥ彉閲?nbsp;int b; 緋葷粺鑷姩鍦ㄦ爤涓負b寮杈熺┖闂?nbsp; heap: 闇瑕佺▼搴忓憳鑷繁鐢寵錛屽茍鎸囨槑澶у皬錛屽湪c涓璵alloc鍑芥暟 濡俻1 = (char *)malloc(10); 鍦–++涓敤new榪愮畻絎?nbsp; 濡俻2 = (char *)malloc(10); 浣嗘槸娉ㄦ剰p1銆乸2鏈韓鏄湪鏍堜腑鐨勩?nbsp; 2.2 鐢寵鍚庣郴緇熺殑鍝嶅簲 鏍堬細鍙鏍堢殑鍓╀綑絀洪棿澶т簬鎵鐢寵絀洪棿錛岀郴緇熷皢涓虹▼搴忔彁渚涘唴瀛橈紝鍚﹀垯灝嗘姤寮傚父鎻愮ず鏍堟孩鍑恒?nbsp; 鍫嗭細棣栧厛搴旇鐭ラ亾鎿嶄綔緋葷粺鏈変竴涓褰曠┖闂插唴瀛樺湴鍧鐨勯摼琛紝褰撶郴緇熸敹鍒扮▼搴忕殑鐢寵鏃訛紝 浼氶亶鍘嗚閾捐〃錛屽鎵劇涓涓┖闂村ぇ浜庢墍鐢寵絀洪棿鐨勫爢緇撶偣錛岀劧鍚庡皢璇ョ粨鐐逛粠絀洪棽緇撶偣閾捐〃涓垹闄わ紝騫跺皢璇ョ粨鐐圭殑絀洪棿鍒嗛厤緇欑▼搴忥紝鍙﹀錛屽浜庡ぇ澶氭暟緋葷粺錛屼細鍦ㄨ繖鍧楀唴瀛樼┖闂翠腑鐨勯鍦板潃澶勮褰曟湰嬈″垎閰嶇殑澶у皬錛岃繖鏍鳳紝浠g爜涓殑delete璇彞鎵嶈兘姝g‘鐨勯噴鏀炬湰鍐呭瓨絀洪棿銆傚彟澶栵紝鐢變簬鎵懼埌鐨勫爢緇撶偣鐨勫ぇ灝忎笉涓瀹氭濂界瓑浜庣敵璇風殑澶у皬錛岀郴緇熶細鑷姩鐨勫皢澶氫綑鐨勯偅閮ㄥ垎閲嶆柊鏀懼叆絀洪棽閾捐〃涓?nbsp; 2.3鐢寵澶у皬鐨勯檺鍒?nbsp; 鏍堬細鍦╓indows涓?鏍堟槸鍚戜綆鍦板潃鎵╁睍鐨勬暟鎹粨鏋勶紝鏄竴鍧楄繛緇殑鍐呭瓨鐨勫尯鍩熴傝繖鍙ヨ瘽鐨勬剰鎬濇槸鏍堥《鐨勫湴鍧鍜屾爤鐨勬渶澶у閲忔槸緋葷粺棰勫厛瑙勫畾濂界殑錛屽湪WINDOWS涓嬶紝鏍堢殑澶у皬鏄?M錛堜篃鏈夌殑璇存槸1M錛屾諱箣鏄竴涓紪璇戞椂灝辯‘瀹氱殑甯告暟錛夛紝濡傛灉鐢寵鐨勭┖闂磋秴榪囨爤鐨勫墿浣欑┖闂存椂錛屽皢鎻愮ずoverflow銆傚洜姝わ紝鑳戒粠鏍堣幏寰楃殑絀洪棿杈冨皬銆?nbsp; 鍫嗭細鍫嗘槸鍚戦珮鍦板潃鎵╁睍鐨勬暟鎹粨鏋勶紝鏄笉榪炵畫鐨勫唴瀛樺尯鍩熴傝繖鏄敱浜庣郴緇熸槸鐢ㄩ摼琛ㄦ潵瀛樺偍鐨勭┖闂插唴瀛樺湴鍧鐨勶紝鑷劧鏄笉榪炵畫鐨勶紝鑰岄摼琛ㄧ殑閬嶅巻鏂瑰悜鏄敱浣庡湴鍧鍚戦珮鍦板潃銆傚爢鐨勫ぇ灝忓彈闄愪簬璁$畻鏈虹郴緇熶腑鏈夋晥鐨勮櫄鎷熷唴瀛樸傜敱姝ゅ彲瑙侊紝鍫嗚幏寰楃殑絀洪棿姣旇緝鐏墊椿錛屼篃姣旇緝澶с?nbsp; 2.4鐢寵鏁堢巼鐨勬瘮杈冿細 鏍堢敱緋葷粺鑷姩鍒嗛厤錛岄熷害杈冨揩銆備絾紼嬪簭鍛樻槸鏃犳硶鎺у埗鐨勩?nbsp; 鍫嗘槸鐢眓ew鍒嗛厤鐨勫唴瀛橈紝涓鑸熷害姣旇緝鎱紝鑰屼笖瀹規槗浜х敓鍐呭瓨紕庣墖,涓嶈繃鐢ㄨ搗鏉ユ渶鏂逛究. 鍙﹀錛屽湪WINDOWS涓嬶紝鏈濂界殑鏂瑰紡鏄敤VirtualAlloc鍒嗛厤鍐呭瓨錛屼粬涓嶆槸鍦ㄥ爢錛屼篃涓嶆槸鍦ㄦ爤鏄洿鎺ュ湪榪涚▼鐨勫湴鍧絀洪棿涓繚鐣欎竴蹇唴瀛橈紝铏界劧鐢ㄨ搗鏉ユ渶涓嶆柟渚褲備絾鏄熷害蹇紝涔熸渶鐏墊椿銆?nbsp; 2.5鍫嗗拰鏍堜腑鐨勫瓨鍌ㄥ唴瀹?nbsp; 鏍堬細 鍦ㄥ嚱鏁拌皟鐢ㄦ椂錛岀涓涓繘鏍堢殑鏄富鍑芥暟涓悗鐨勪笅涓鏉℃寚浠わ紙鍑芥暟璋冪敤璇彞鐨勪笅涓鏉″彲鎵ц璇彞錛夌殑鍦板潃錛岀劧鍚庢槸鍑芥暟鐨勫悇涓弬鏁幫紝鍦ㄥぇ澶氭暟鐨凜緙栬瘧鍣ㄤ腑錛屽弬鏁版槸鐢卞彸寰宸﹀叆鏍堢殑錛岀劧鍚庢槸鍑芥暟涓殑灞閮ㄥ彉閲忋傛敞鎰忛潤鎬佸彉閲忔槸涓嶅叆鏍堢殑銆?nbsp;
浣滆咃細121.30.67.*
2
鍫嗗拰鏍堢殑鍖哄埆 (杞創)
褰撴湰嬈″嚱鏁拌皟鐢ㄧ粨鏉熷悗錛屽眬閮ㄥ彉閲忓厛鍑烘爤錛岀劧鍚庢槸鍙傛暟錛屾渶鍚庢爤欏舵寚閽堟寚鍚戞渶寮濮嬪瓨鐨勫湴鍧錛屼篃灝辨槸涓誨嚱鏁頒腑鐨勪笅涓鏉℃寚浠わ紝紼嬪簭鐢辮鐐圭戶緇繍琛屻?nbsp; 鍫嗭細涓鑸槸鍦ㄥ爢鐨勫ご閮ㄧ敤涓涓瓧鑺傚瓨鏀懼爢鐨勫ぇ灝忋傚爢涓殑鍏蜂綋鍐呭鏈夌▼搴忓憳瀹夋帓銆?nbsp; 2.6瀛樺彇鏁堢巼鐨勬瘮杈?nbsp; char s1[] = "aaaaaaaaaaaaaaa"; char *s2 = "bbbbbbbbbbbbbbbbb"; aaaaaaaaaaa鏄湪榪愯鏃跺埢璧嬪肩殑錛?nbsp; 鑰宐bbbbbbbbbb鏄湪緙栬瘧鏃跺氨紜畾鐨勶紱 浣嗘槸錛屽湪浠ュ悗鐨勫瓨鍙栦腑錛屽湪鏍堜笂鐨勬暟緇勬瘮鎸囬拡鎵鎸囧悜鐨勫瓧絎︿覆(渚嬪鍫?蹇?nbsp; 姣斿錛?nbsp; #include void main() { char a = 1; char c[] = "1234567890"; char *p ="1234567890"; a = c[1]; a = p[1]; return; } 瀵瑰簲鐨勬眹緙栦唬鐮?nbsp; 10: a = c[1]; 00401067 8A 4D F1 mov cl,byte ptr [ebp-0Fh] 0040106A 88 4D FC mov byte ptr [ebp-4],cl 11: a = p[1]; 0040106D 8B 55 EC mov edx,dword ptr [ebp-14h] 00401070 8A 42 01 mov al,byte ptr [edx+1] 00401073 88 45 FC mov byte ptr [ebp-4],al 絎竴縐嶅湪璇誨彇鏃剁洿鎺ュ氨鎶婂瓧絎︿覆涓殑鍏冪礌璇誨埌瀵勫瓨鍣╟l涓紝鑰岀浜岀鍒欒鍏堟妸鎸囬拡鍊艱鍒癳dx涓紝鍦ㄦ牴鎹甧dx璇誨彇瀛楃錛屾樉鐒舵參浜嗐?nbsp; 2.7灝忕粨錛?nbsp; 鍫嗗拰鏍堢殑鍖哄埆鍙互鐢ㄥ涓嬬殑姣斿柣鏉ョ湅鍑猴細 浣跨敤鏍堝氨璞℃垜浠幓楗閲屽悆楗紝鍙鐐硅彍錛堝彂鍑虹敵璇鳳級銆佷粯閽便佸拰鍚冿紙浣跨敤錛夛紝鍚冮ケ浜嗗氨璧幫紝涓嶅繀鐞嗕細鍒囪彍銆佹礂鑿滅瓑鍑嗗宸ヤ綔鍜屾礂紕椼佸埛閿呯瓑鎵熬宸ヤ綔錛屼粬鐨勫ソ澶勬槸蹇嵎錛屼絾鏄嚜鐢卞害灝忋?nbsp; 浣跨敤鍫嗗氨璞℃槸鑷繁鍔ㄦ墜鍋氬枩嬈㈠悆鐨勮彍鑲達紝姣旇緝楹葷儲錛屼絾鏄瘮杈冪鍚堣嚜宸辯殑鍙e懗錛岃屼笖鑷敱搴﹀ぇ銆?nbsp; windows榪涚▼涓殑鍐呭瓨緇撴瀯 鍦ㄩ槄璇繪湰鏂囦箣鍓嶏紝濡傛灉浣犺繛鍫嗘爤鏄粈涔堝涓嶇煡閬撶殑璇濓紝璇峰厛闃呰鏂囩珷鍚庨潰鐨勫熀紜鐭ヨ瘑銆?nbsp; 鎺ヨЕ榪囩紪紼嬬殑浜洪兘鐭ラ亾錛岄珮綰ц璦閮借兘閫氳繃鍙橀噺鍚嶆潵璁塊棶鍐呭瓨涓殑鏁版嵁銆傞偅涔堣繖浜涘彉閲忓湪鍐呭瓨涓槸濡備綍瀛樻斁鐨勫憿錛熺▼搴忓張鏄浣曚嬌鐢ㄨ繖浜涘彉閲忕殑鍛紵涓嬮潰灝變細瀵規榪涜娣卞叆鐨勮璁恒備笅鏂囦腑鐨凜璇█浠g爜濡傛病鏈夌壒鍒0鏄庯紝榛樿閮戒嬌鐢╒C緙栬瘧鐨剅elease鐗堛?nbsp; 棣栧厛錛屾潵浜嗚В涓涓?nbsp;C 璇█鐨勫彉閲忔槸濡備綍鍦ㄥ唴瀛樺垎閮ㄧ殑銆侰 璇█鏈夊叏灞鍙橀噺(Global)銆佹湰鍦板彉閲?Local)錛岄潤鎬佸彉閲?Static)銆佸瘎瀛樺櫒鍙橀噺(Regeister)銆傛瘡縐嶅彉閲忛兘鏈変笉鍚岀殑鍒嗛厤鏂瑰紡銆傚厛鏉ョ湅涓嬮潰榪欐浠g爜錛?nbsp; #include <stdio.h> int g1=0, g2=0, g3=0; int main() { static int s1=0, s2=0, s3=0; int v1=0, v2=0, v3=0; //鎵撳嵃鍑哄悇涓彉閲忕殑鍐呭瓨鍦板潃 printf("0x%08x\n",&v1); //鎵撳嵃鍚勬湰鍦板彉閲忕殑鍐呭瓨鍦板潃 printf("0x%08x\n",&v2); printf("0x%08x\n\n",&v3); printf("0x%08x\n",&g1); //鎵撳嵃鍚勫叏灞鍙橀噺鐨勫唴瀛樺湴鍧 printf("0x%08x\n",&g2); printf("0x%08x\n\n",&g3); printf("0x%08x\n",&s1); //鎵撳嵃鍚勯潤鎬佸彉閲忕殑鍐呭瓨鍦板潃 printf("0x%08x\n",&s2); printf("0x%08x\n\n",&s3); return 0; } 緙栬瘧鍚庣殑鎵ц緇撴灉鏄細 0x0012ff78 0x0012ff7c 0x0012ff80 0x004068d0 0x004068d4 0x004068d8 0x004068dc 0x004068e0 0x004068e4 杈撳嚭鐨勭粨鏋滃氨鏄彉閲忕殑鍐呭瓨鍦板潃銆傚叾涓璿1,v2,v3鏄湰鍦板彉閲忥紝g1,g2,g3鏄叏灞鍙橀噺錛宻1,s2,s3鏄潤鎬佸彉閲忋備綘鍙互鐪嬪埌榪欎簺鍙橀噺鍦ㄥ唴瀛樻槸榪炵畫鍒嗗竷鐨勶紝浣嗘槸鏈湴鍙橀噺鍜屽叏灞鍙橀噺鍒嗛厤鐨勫唴瀛樺湴鍧宸簡鍗佷竾鍏崈閲岋紝鑰屽叏灞鍙橀噺鍜岄潤鎬佸彉閲忓垎閰嶇殑鍐呭瓨鏄繛緇殑銆傝繖鏄洜涓烘湰鍦板彉閲忓拰鍏ㄥ眬/闈欐佸彉閲忔槸鍒嗛厤鍦ㄤ笉鍚岀被鍨嬬殑鍐呭瓨鍖哄煙涓殑緇撴灉銆傚浜庝竴涓繘紼嬬殑鍐呭瓨絀洪棿鑰岃█錛屽彲浠ュ湪閫昏緫涓婂垎鎴?涓儴浠斤細浠g爜鍖猴紝闈欐佹暟鎹尯鍜屽姩鎬佹暟鎹尯銆傚姩鎬佹暟鎹尯涓鑸氨鏄?#8220;鍫嗘爤”銆?#8220;鏍?stack)”鍜?#8220;鍫?heap)”鏄袱縐嶄笉鍚岀殑鍔ㄦ佹暟鎹尯錛屾爤鏄竴縐嶇嚎鎬х粨鏋勶紝鍫嗘槸涓縐嶉摼寮忕粨鏋勩傝繘紼嬬殑姣忎釜綰跨▼閮芥湁縐佹湁鐨?#8220;鏍?#8221;錛屾墍浠ユ瘡涓嚎紼嬭櫧鐒朵唬鐮佷竴鏍鳳紝浣嗘湰鍦板彉閲忕殑鏁版嵁閮芥槸浜掍笉騫叉壈銆備竴涓爢鏍堝彲浠ラ氳繃“鍩哄湴鍧”鍜?#8220;鏍堥《”鍦板潃鏉ユ弿榪般傚叏灞鍙橀噺鍜岄潤鎬佸彉閲忓垎閰嶅湪闈欐佹暟鎹尯錛屾湰鍦板彉閲忓垎閰嶅湪鍔ㄦ佹暟鎹尯錛屽嵆鍫嗘爤涓傜▼搴忛氳繃鍫嗘爤鐨勫熀鍦板潃鍜屽亸縐婚噺鏉ヨ闂湰鍦板彉閲忋?nbsp;
浣滆咃細121.30.67.*
3
鍫嗗拰鏍堢殑鍖哄埆 (杞創)
鈹溾斺斺斺斺斺斺斺敜浣庣鍐呭瓨鍖哄煙 鈹?nbsp;…… 鈹?nbsp; 鈹溾斺斺斺斺斺斺斺敜 鈹?nbsp;鍔ㄦ佹暟鎹尯 鈹?nbsp; 鈹溾斺斺斺斺斺斺斺敜 鈹?nbsp;…… 鈹?nbsp; 鈹溾斺斺斺斺斺斺斺敜 鈹?nbsp;浠g爜鍖?nbsp;鈹?nbsp; 鈹溾斺斺斺斺斺斺斺敜 鈹?nbsp;闈欐佹暟鎹尯 鈹?nbsp; 鈹溾斺斺斺斺斺斺斺敜 鈹?nbsp;…… 鈹?nbsp; 鈹溾斺斺斺斺斺斺斺敜楂樼鍐呭瓨鍖哄煙 鍫嗘爤鏄竴涓厛榪涘悗鍑虹殑鏁版嵁緇撴瀯錛屾爤欏跺湴鍧鎬繪槸灝忎簬絳変簬鏍堢殑鍩哄湴鍧銆傛垜浠彲浠ュ厛浜嗚В涓涓嬪嚱鏁拌皟鐢ㄧ殑榪囩▼錛屼互渚垮鍫嗘爤鍦ㄧ▼搴忎腑鐨勪綔鐢ㄦ湁鏇存繁鍏ョ殑浜嗚В銆備笉鍚岀殑璇█鏈変笉鍚岀殑鍑芥暟璋冪敤瑙勫畾錛岃繖浜涘洜绱犳湁鍙傛暟鐨勫帇鍏ヨ鍒欏拰鍫嗘爤鐨勫鉤琛°倃indows API鐨勮皟鐢ㄨ鍒欏拰ANSI C鐨勫嚱鏁拌皟鐢ㄨ鍒欐槸涓嶄竴鏍風殑錛屽墠鑰呯敱琚皟鍑芥暟璋冩暣鍫嗘爤錛屽悗鑰呯敱璋冪敤鑰呰皟鏁村爢鏍堛備袱鑰呴氳繃“__stdcall”鍜?#8220;__cdecl”鍓嶇紑鍖哄垎銆傚厛鐪嬩笅闈㈣繖孌典唬鐮侊細 #include <stdio.h> void __stdcall func(int param1,int param2,int param3) { int var1=param1; int var2=param2; int var3=param3; printf("0x%08x\n",¶m1); //鎵撳嵃鍑哄悇涓彉閲忕殑鍐呭瓨鍦板潃 printf("0x%08x\n",¶m2); printf("0x%08x\n\n",¶m3); printf("0x%08x\n",&var1); printf("0x%08x\n",&var2); printf("0x%08x\n\n",&var3); return; } int main() { func(1,2,3); return 0; } 緙栬瘧鍚庣殑鎵ц緇撴灉鏄細 0x0012ff78 0x0012ff7c 0x0012ff80 0x0012ff68 0x0012ff6c 0x0012ff70 鈹溾斺斺斺斺斺斺斺敜<鈥斿嚱鏁版墽琛屾椂鐨勬爤欏訛紙ESP錛夈佷綆绔唴瀛樺尯鍩?nbsp; 鈹?nbsp;…… 鈹?nbsp; 鈹溾斺斺斺斺斺斺斺敜 鈹?nbsp;var 1 鈹?nbsp; 鈹溾斺斺斺斺斺斺斺敜 鈹?nbsp;var 2 鈹?nbsp; 鈹溾斺斺斺斺斺斺斺敜 鈹?nbsp;var 3 鈹?nbsp; 鈹溾斺斺斺斺斺斺斺敜 鈹?nbsp;RET 鈹?nbsp; 鈹溾斺斺斺斺斺斺斺敜<鈥?#8220;__cdecl”鍑芥暟榪斿洖鍚庣殑鏍堥《錛圗SP錛?nbsp; 鈹?nbsp;parameter 1 鈹?nbsp; 鈹溾斺斺斺斺斺斺斺敜 鈹?nbsp;parameter 2 鈹?nbsp; 鈹溾斺斺斺斺斺斺斺敜 鈹?nbsp;parameter 3 鈹?nbsp; 鈹溾斺斺斺斺斺斺斺敜<鈥?#8220;__stdcall”鍑芥暟榪斿洖鍚庣殑鏍堥《錛圗SP錛?nbsp; 鈹?nbsp;…… 鈹?nbsp; 鈹溾斺斺斺斺斺斺斺敜<鈥旀爤搴曪紙鍩哄湴鍧 EBP錛夈侀珮绔唴瀛樺尯鍩?nbsp; 涓婂浘灝辨槸鍑芥暟璋冪敤榪囩▼涓爢鏍堢殑鏍峰瓙浜嗐傞鍏堬紝涓変釜鍙傛暟浠ヤ粠鍙堝埌宸︾殑嬈″簭鍘嬪叆鍫嗘爤錛屽厛鍘?#8220;param3”錛屽啀鍘?#8220;param2”錛屾渶鍚庡帇鍏?#8220;param1”錛涚劧鍚庡帇鍏ュ嚱鏁扮殑榪斿洖鍦板潃(RET)錛屾帴鐫璺寵漿鍒板嚱鏁板湴鍧鎺ョ潃鎵ц錛堣繖閲岃琛ュ厖涓鐐癸紝浠嬬粛UNIX涓嬬殑緙撳啿婧㈠嚭鍘熺悊鐨勬枃绔犱腑閮芥彁鍒板湪鍘嬪叆RET鍚庯紝緇х畫鍘嬪叆褰撳墠EBP錛岀劧鍚庣敤褰撳墠ESP浠f浛EBP銆傜劧鑰岋紝鏈変竴綃囦粙緇峸indows涓嬪嚱鏁拌皟鐢ㄧ殑鏂囩珷涓錛屽湪windows涓嬬殑鍑芥暟璋冪敤涔熸湁榪欎竴姝ラ錛屼絾鏍規嵁鎴戠殑瀹為檯璋冭瘯錛屽茍鏈彂鐜拌繖涓姝ワ紝榪欒繕鍙互浠巔aram3鍜寁ar1涔嬮棿鍙湁4瀛楄妭鐨勯棿闅欒繖鐐圭湅鍑烘潵錛夛紱絎笁姝ワ紝灝嗘爤欏?ESP)鍑忓幓涓涓暟錛屼負鏈湴鍙橀噺鍒嗛厤鍐呭瓨絀洪棿錛屼笂渚嬩腑鏄噺鍘?2瀛楄妭(ESP=ESP-3*4錛屾瘡涓猧nt鍙橀噺鍗犵敤4涓瓧鑺?錛涙帴鐫灝卞垵濮嬪寲鏈湴鍙橀噺鐨勫唴瀛樼┖闂淬傜敱浜?#8220;__stdcall”璋冪敤鐢辮璋冨嚱鏁拌皟鏁村爢鏍堬紝鎵浠ュ湪鍑芥暟榪斿洖鍓嶈鎭㈠鍫嗘爤錛屽厛鍥炴敹鏈湴鍙橀噺鍗犵敤鐨勫唴瀛?ESP=ESP+3*4)錛岀劧鍚庡彇鍑鴻繑鍥炲湴鍧錛屽~鍏IP瀵勫瓨鍣紝鍥炴敹鍏堝墠鍘嬪叆鍙傛暟鍗犵敤鐨勫唴瀛?ESP=ESP+3*4)錛岀戶緇墽琛岃皟鐢ㄨ呯殑浠g爜銆傚弬瑙佷笅鍒楁眹緙栦唬鐮侊細 ;--------------func 鍑芥暟鐨勬眹緙栦唬鐮?------------------ :00401000 83EC0C sub esp, 0000000C //鍒涘緩鏈湴鍙橀噺鐨勫唴瀛樼┖闂?nbsp; :00401003 8B442410 mov eax, dword ptr [esp+10] :00401007 8B4C2414 mov ecx, dword ptr [esp+14] :0040100B 8B542418 mov edx, dword ptr [esp+18] :0040100F 89442400 mov dword ptr [esp], eax :00401013 8D442410 lea eax, dword ptr [esp+10] :00401017 894C2404 mov dword ptr [esp+04], ecx ……………………錛堢渷鐣ヨ嫢騫蹭唬鐮侊級 :00401075 83C43C add esp, 0000003C ;鎭㈠鍫嗘爤錛屽洖鏀舵湰鍦板彉閲忕殑鍐呭瓨絀洪棿 :00401078 C3 ret 000C ;鍑芥暟榪斿洖錛屾仮澶嶅弬鏁板崰鐢ㄧ殑鍐呭瓨絀洪棿
浣滆咃細121.30.67.*
4
鍫嗗拰鏍堢殑鍖哄埆 (杞創)
;濡傛灉鏄?#8220;__cdecl”鐨勮瘽錛岃繖閲屾槸“ret”錛屽爢鏍堝皢鐢辮皟鐢ㄨ呮仮澶?nbsp; ;-------------------鍑芥暟緇撴潫------------------------- ;--------------涓葷▼搴忚皟鐢╢unc鍑芥暟鐨勪唬鐮?------------- :00401080 6A03 push 00000003 //鍘嬪叆鍙傛暟param3 :00401082 6A02 push 00000002 //鍘嬪叆鍙傛暟param2 :00401084 6A01 push 00000001 //鍘嬪叆鍙傛暟param1 :00401086 E875FFFFFF call 00401000 //璋冪敤func鍑芥暟 ;濡傛灉鏄?#8220;__cdecl”鐨勮瘽錛屽皢鍦ㄨ繖閲屾仮澶嶅爢鏍堬紝“add esp, 0000000C” 鑱槑鐨勮鑰呯湅鍒拌繖閲岋紝宸笉澶氬氨鏄庣櫧緙撳啿婧㈠嚭鐨勫師鐞嗕簡銆傚厛鏉ョ湅涓嬮潰鐨勪唬鐮侊細 #include <stdio.h> #include <string.h> void __stdcall func() { char lpBuff[8]="\0"; strcat(lpBuff,"AAAAAAAAAAA"); return; } int main() { func(); return 0; } 緙栬瘧鍚庢墽琛屼竴涓嬪洖鎬庝箞鏍鳳紵鍝堬紝“"0x00414141"鎸囦護寮曠敤鐨?0x00000000"鍐呭瓨銆傝鍐呭瓨涓嶈兘涓?read"銆?#8221;錛?#8220;闈炴硶鎿嶄綔”鍠斤紒"41"灝辨槸"A"鐨?6榪涘埗鐨凙SCII鐮佷簡錛岄偅鏄庢樉灝辨槸strcat榪欏彞鍑虹殑闂浜嗐?lpBuff"鐨勫ぇ灝忓彧鏈?瀛楄妭錛岀畻榪涚粨灝劇殑\0錛岄偅strcat鏈澶氬彧鑳藉啓鍏?涓?A"錛屼絾紼嬪簭瀹為檯鍐欏叆浜?1涓?A"澶栧姞1涓猏0銆傚啀鏉ョ湅鐪嬩笂闈㈤偅騫呭浘錛屽鍑烘潵鐨?涓瓧鑺傛濂借鐩栦簡RET鐨勬墍鍦ㄧ殑鍐呭瓨絀洪棿錛屽鑷村嚱鏁拌繑鍥炲埌涓涓敊璇殑鍐呭瓨鍦板潃錛屾墽琛屼簡閿欒鐨勬寚浠ゃ傚鏋滆兘綺懼績鏋勯犺繖涓瓧絎︿覆錛屼嬌瀹冨垎鎴愪笁閮ㄥ垎錛屽墠涓閮ㄤ喚浠呬粎鏄~鍏呯殑鏃犳剰涔夋暟鎹互杈懼埌婧㈠嚭鐨勭洰鐨勶紝鎺ョ潃鏄竴涓鐩朢ET鐨勬暟鎹紝绱ф帴鐫鏄竴孌祍hellcode錛岄偅鍙鐫涓猂ET鍦板潃鑳芥寚鍚戣繖孌祍hellcode鐨勭涓涓寚浠わ紝閭e嚱鏁拌繑鍥炴椂灝辮兘鎵цshellcode浜嗐備絾鏄蔣浠剁殑涓嶅悓鐗堟湰鍜屼笉鍚岀殑榪愯鐜閮藉彲鑳藉獎鍝嶈繖孌祍hellcode鍦ㄥ唴瀛樹腑鐨勪綅緗紝閭d箞瑕佹瀯閫犺繖涓猂ET鏄崄鍒嗗洶闅劇殑銆備竴鑸兘鍦≧ET鍜宻hellcode涔嬮棿濉厖澶ч噺鐨凬OP鎸囦護錛屼嬌寰梕xploit鏈夋洿寮虹殑閫氱敤鎬с?nbsp; 鈹溾斺斺斺斺斺斺斺敜<鈥斾綆绔唴瀛樺尯鍩?nbsp; 鈹?nbsp;…… 鈹?nbsp; 鈹溾斺斺斺斺斺斺斺敜<鈥旂敱exploit濉叆鏁版嵁鐨勫紑濮?nbsp; 鈹?nbsp;鈹?nbsp; 鈹?nbsp;buffer 鈹?lt;鈥斿~鍏ユ棤鐢ㄧ殑鏁版嵁 鈹?nbsp;鈹?nbsp; 鈹溾斺斺斺斺斺斺斺敜 鈹?nbsp;RET 鈹?lt;鈥旀寚鍚憇hellcode錛屾垨NOP鎸囦護鐨勮寖鍥?nbsp; 鈹溾斺斺斺斺斺斺斺敜 鈹?nbsp;NOP 鈹?nbsp; 鈹?nbsp;…… 鈹?lt;鈥斿~鍏ョ殑NOP鎸囦護錛屾槸RET鍙寚鍚戠殑鑼冨洿 鈹?nbsp;NOP 鈹?nbsp; 鈹溾斺斺斺斺斺斺斺敜 鈹?nbsp;鈹?nbsp; 鈹?nbsp;shellcode 鈹?nbsp; 鈹?nbsp;鈹?nbsp; 鈹溾斺斺斺斺斺斺斺敜<鈥旂敱exploit濉叆鏁版嵁鐨勭粨鏉?nbsp; 鈹?nbsp;…… 鈹?nbsp; 鈹溾斺斺斺斺斺斺斺敜<鈥旈珮绔唴瀛樺尯鍩?nbsp; windows涓嬬殑鍔ㄦ佹暟鎹櫎浜嗗彲瀛樻斁鍦ㄦ爤涓紝榪樺彲浠ュ瓨鏀懼湪鍫嗕腑銆備簡瑙++鐨勬湅鍙嬮兘鐭ラ亾錛孋++鍙互浣跨敤new鍏抽敭瀛楁潵鍔ㄦ佸垎閰嶅唴瀛樸傛潵鐪嬩笅闈㈢殑C++浠g爜錛?nbsp; #include <stdio.h> #include <iostream.h> #include <windows.h> void func() { char *buffer=new char[128]; char bufflocal[128]; static char buffstatic[128]; printf("0x%08x\n",buffer); //鎵撳嵃鍫嗕腑鍙橀噺鐨勫唴瀛樺湴鍧 printf("0x%08x\n",bufflocal); //鎵撳嵃鏈湴鍙橀噺鐨勫唴瀛樺湴鍧 printf("0x%08x\n",buffstatic); //鎵撳嵃闈欐佸彉閲忕殑鍐呭瓨鍦板潃 } void main() { func(); return; } 紼嬪簭鎵ц緇撴灉涓猴細 0x004107d0 0x0012ff04 0x004068c0 鍙互鍙戠幇鐢╪ew鍏抽敭瀛楀垎閰嶇殑鍐呭瓨鍗充笉鍦ㄦ爤涓紝涔熶笉鍦ㄩ潤鎬佹暟鎹尯銆俈C緙栬瘧鍣ㄦ槸閫氳繃windows涓嬬殑“鍫?heap)”鏉ュ疄鐜皀ew鍏抽敭瀛楃殑鍐呭瓨鍔ㄦ佸垎閰嶃傚湪璁?#8220;鍫?#8221;涔嬪墠錛屽厛鏉ヤ簡瑙d竴涓嬪拰“鍫?#8221;鏈夊叧鐨勫嚑涓狝PI鍑芥暟錛?nbsp; HeapAlloc 鍦ㄥ爢涓敵璇峰唴瀛樼┖闂?nbsp; HeapCreate 鍒涘緩涓涓柊鐨勫爢瀵硅薄 HeapDestroy 閿姣佷竴涓爢瀵硅薄 HeapFree 閲婃斁鐢寵鐨勫唴瀛?nbsp; HeapWalk 鏋氫婦鍫嗗璞$殑鎵鏈夊唴瀛樺潡 GetProcessHeap 鍙栧緱榪涚▼鐨勯粯璁ゅ爢瀵硅薄 GetProcessHeaps 鍙栧緱榪涚▼鎵鏈夌殑鍫嗗璞?nbsp; LocalAlloc GlobalAlloc 褰撹繘紼嬪垵濮嬪寲鏃訛紝緋葷粺浼氳嚜鍔ㄤ負榪涚▼鍒涘緩涓涓粯璁ゅ爢錛岃繖涓爢榛樿鎵鍗犲唴瀛樼殑澶у皬涓?M銆傚爢瀵硅薄鐢辯郴緇熻繘琛岀鐞嗭紝瀹冨湪鍐呭瓨涓互閾懼紡緇撴瀯瀛樺湪銆傞氳繃涓嬮潰鐨勪唬鐮佸彲浠ラ氳繃鍫嗗姩鎬佺敵璇峰唴瀛樼┖闂達細
浣滆咃細121.30.67.*
5
鍫嗗拰鏍堢殑鍖哄埆 (杞創)
HANDLE hHeap=GetProcessHeap(); char *buff=HeapAlloc(hHeap,0,8); 鍏朵腑hHeap鏄爢瀵硅薄鐨勫彞鏌勶紝buff鏄寚鍚戠敵璇風殑鍐呭瓨絀洪棿鐨勫湴鍧銆傞偅榪欎釜hHeap絀剁珶鏄粈涔堝憿錛熷畠鐨勫兼湁浠涔堟剰涔夊悧錛熺湅鐪嬩笅闈㈣繖孌典唬鐮佸惂錛?nbsp; #pragma comment(linker,"/entry:main") //瀹氫箟紼嬪簭鐨勫叆鍙?nbsp; #include <windows.h> _CRTIMP int (__cdecl *printf)(const char *, ...); //瀹氫箟STL鍑芥暟printf /*--------------------------------------------------------------------------- 鍐欏埌榪欓噷錛屾垜浠『渚挎潵澶嶄範涓涓嬪墠闈㈡墍璁茬殑鐭ヨ瘑錛?nbsp; (*娉?printf鍑芥暟鏄疌璇█鐨勬爣鍑嗗嚱鏁板簱涓嚱鏁幫紝VC鐨勬爣鍑嗗嚱鏁板簱鐢眒svcrt.dll妯″潡瀹炵幇銆?nbsp; 鐢卞嚱鏁板畾涔夊彲瑙侊紝printf鐨勫弬鏁頒釜鏁版槸鍙彉鐨勶紝鍑芥暟鍐呴儴鏃犳硶棰勫厛鐭ラ亾璋冪敤鑰呭帇鍏ョ殑鍙傛暟涓暟錛屽嚱鏁板彧鑳介氳繃鍒嗘瀽絎竴涓弬鏁板瓧絎︿覆鐨勬牸寮忔潵鑾峰緱鍘嬪叆鍙傛暟鐨勪俊鎭紝鐢變簬榪欓噷鍙傛暟鐨勪釜鏁版槸鍔ㄦ佺殑錛屾墍浠ュ繀欏葷敱璋冪敤鑰呮潵騫寵 鍫嗘爤錛岃繖閲屼究浣跨敤浜哶_cdecl璋冪敤瑙勫垯銆侭TW錛學indows緋葷粺鐨凙PI鍑芥暟鍩烘湰涓婃槸__stdcall璋冪敤褰㈠紡錛屽彧鏈変竴涓狝PI渚嬪錛岄偅灝辨槸wsprintf錛屽畠浣跨敤__cdecl璋冪敤瑙勫垯錛屽悓printf鍑芥暟涓鏍鳳紝榪欐槸鐢變簬瀹冪殑鍙傛暟涓暟鏄彲鍙樼殑緙樻晠銆?nbsp; ---------------------------------------------------------------------------*/ void main() { HANDLE hHeap=GetProcessHeap(); char *buff=HeapAlloc(hHeap,0,0x10); char *buff2=HeapAlloc(hHeap,0,0x10); HMODULE hMsvcrt=LoadLibrary("msvcrt.dll"); printf=(void *)GetProcAddress(hMsvcrt,"printf"); printf("0x%08x\n",hHeap); printf("0x%08x\n",buff); printf("0x%08x\n\n",buff2); } 鎵ц緇撴灉涓猴細 0x00130000 0x00133100 0x00133118 hHeap鐨勫兼庝箞鍜岄偅涓猙uff鐨勫奸偅涔堟帴榪戝憿錛熷叾瀹瀐Heap榪欎釜鍙ユ焺灝辨槸鎸囧悜HEAP棣栭儴鐨勫湴鍧銆傚湪榪涚▼鐨勭敤鎴峰尯瀛樼潃涓涓彨PEB(榪涚▼鐜鍧?鐨勭粨鏋勶紝榪欎釜緇撴瀯涓瓨鏀劇潃涓浜涙湁鍏寵繘紼嬬殑閲嶈淇℃伅錛屽叾涓湪PEB棣栧湴鍧鍋忕Щ0x18澶勫瓨鏀劇殑ProcessHeap灝辨槸榪涚▼榛樿鍫嗙殑鍦板潃錛岃屽亸縐?x90澶勫瓨鏀句簡鎸囧悜榪涚▼鎵鏈夊爢鐨勫湴鍧鍒楄〃鐨勬寚閽堛倃indows鏈夊緢澶欰PI閮戒嬌鐢ㄨ繘紼嬬殑榛樿鍫嗘潵瀛樻斁鍔ㄦ佹暟鎹紝濡倃indows 2000涓嬬殑鎵鏈堿NSI鐗堟湰鐨勫嚱鏁伴兘鏄湪榛樿鍫嗕腑鐢寵鍐呭瓨鏉ヨ漿鎹NSI瀛楃涓插埌Unicode瀛楃涓茬殑銆傚涓涓爢鐨勮闂槸欏哄簭榪涜鐨勶紝鍚屼竴鏃跺埢鍙兘鏈変竴涓嚎紼嬭闂爢涓殑鏁版嵁錛屽綋澶氫釜綰跨▼鍚屾椂鏈夎闂姹傛椂錛屽彧鑳芥帓闃熺瓑寰咃紝榪欐牱渚塊犳垚紼嬪簭鎵ц鏁堢巼涓嬮檷銆?nbsp; 鏈鍚庢潵璇磋鍐呭瓨涓殑鏁版嵁瀵歸綈銆傛墍浣嶆暟鎹榻愶紝鏄寚鏁版嵁鎵鍦ㄧ殑鍐呭瓨鍦板潃蹇呴』鏄鏁版嵁闀垮害鐨勬暣鏁板嶏紝DWORD鏁版嵁鐨勫唴瀛樿搗濮嬪湴鍧鑳借4闄ゅ敖錛學ORD鏁版嵁鐨勫唴瀛樿搗濮嬪湴鍧鑳借2闄ゅ敖錛寈86 CPU鑳界洿鎺ヨ闂榻愮殑鏁版嵁錛屽綋浠栬瘯鍥捐闂竴涓湭瀵歸綈鐨勬暟鎹椂錛屼細鍦ㄥ唴閮ㄨ繘琛屼竴緋誨垪鐨勮皟鏁達紝榪欎簺璋冩暣瀵逛簬紼嬪簭鏉ヨ鏄忔槑鐨勶紝浣嗘槸浼氶檷浣庤繍琛岄熷害錛屾墍浠ョ紪璇戝櫒鍦ㄧ紪璇戠▼搴忔椂浼氬敖閲忎繚璇佹暟鎹榻愩傚悓鏍蜂竴孌典唬鐮侊紝鎴戜滑鏉ョ湅鐪嬬敤VC銆丏ev-C++鍜宭cc涓変釜涓嶅悓緙栬瘧鍣ㄧ紪璇戝嚭鏉ョ殑紼嬪簭鐨勬墽琛岀粨鏋滐細 #include <stdio.h> int main() { int a; char b; int c; printf("0x%08x\n",&a); printf("0x%08x\n",&b); printf("0x%08x\n",&c); return 0; } 榪欐槸鐢╒C緙栬瘧鍚庣殑鎵ц緇撴灉錛?nbsp; 0x0012ff7c 0x0012ff7b 0x0012ff80 鍙橀噺鍦ㄥ唴瀛樹腑鐨勯『搴忥細b(1瀛楄妭)-a(4瀛楄妭)-c(4瀛楄妭)銆?nbsp; 榪欐槸鐢―ev-C++緙栬瘧鍚庣殑鎵ц緇撴灉錛?nbsp; 0x0022ff7c 0x0022ff7b 0x0022ff74 鍙橀噺鍦ㄥ唴瀛樹腑鐨勯『搴忥細c(4瀛楄妭)-涓棿鐩擱殧3瀛楄妭-b(鍗?瀛楄妭)-a(4瀛楄妭)銆?nbsp; 榪欐槸鐢╨cc緙栬瘧鍚庣殑鎵ц緇撴灉錛?nbsp; 0x0012ff6c 0x0012ff6b 0x0012ff64 鍙橀噺鍦ㄥ唴瀛樹腑鐨勯『搴忥細鍚屼笂銆?nbsp; 涓変釜緙栬瘧鍣ㄩ兘鍋氬埌浜嗘暟鎹榻愶紝浣嗘槸鍚庝袱涓紪璇戝櫒鏄劇劧娌C“鑱槑”錛岃涓涓猚har鍗犱簡4瀛楄妭錛屾氮璐瑰唴瀛樺摝銆?nbsp; 鍩虹鐭ヨ瘑錛?nbsp; 鍫嗘爤鏄竴縐嶇畝鍗曠殑鏁版嵁緇撴瀯錛屾槸涓縐嶅彧鍏佽鍦ㄥ叾涓绔繘琛屾彃鍏ユ垨鍒犻櫎鐨勭嚎鎬ц〃銆傚厑璁告彃鍏ユ垨鍒犻櫎鎿嶄綔鐨勪竴绔О涓烘爤欏訛紝鍙︿竴绔О涓烘爤搴曪紝瀵瑰爢鏍堢殑鎻掑叆鍜屽垹闄ゆ搷浣滆縐頒負鍏ユ爤鍜屽嚭鏍堛傛湁涓緇凜PU鎸囦護鍙互瀹炵幇瀵硅繘紼嬬殑鍐呭瓨瀹炵幇鍫嗘爤璁塊棶銆傚叾涓紝POP鎸囦護瀹炵幇鍑烘爤鎿嶄綔錛孭USH鎸囦護瀹炵幇鍏ユ爤鎿嶄綔銆侰PU鐨凟SP瀵勫瓨鍣ㄥ瓨鏀懼綋鍓嶇嚎紼嬬殑鏍堥《鎸囬拡錛孍BP瀵勫瓨鍣ㄤ腑淇濆瓨褰撳墠綰跨▼鐨勬爤搴曟寚閽堛侰PU鐨凟IP瀵勫瓨鍣ㄥ瓨鏀句笅涓涓狢PU鎸囦護瀛樻斁鐨勫唴瀛樺湴鍧錛屽綋CPU鎵ц瀹屽綋鍓嶇殑鎸囦護鍚庯紝浠嶦IP瀵勫瓨鍣ㄤ腑璇誨彇涓嬩竴鏉℃寚浠ょ殑鍐呭瓨鍦板潃錛岀劧鍚庣戶緇墽琛屻?nbsp;
浣滆咃細121.30.67.*
6
鍫嗗拰鏍堢殑鍖哄埆 (杞創)
鍙傝冿細銆奧indows涓嬬殑HEAP婧㈠嚭鍙婂叾鍒╃敤銆媌y: isno 銆妛indows鏍稿績緙栫▼銆媌y: Jeffrey Richter 鎽樿錛?nbsp;璁ㄨ甯歌鐨勫爢鎬ц兘闂浠ュ強濡備綍闃茶寖瀹冧滑銆傦紙鍏?nbsp;9 欏碉級 鍓嶈█ 鎮ㄦ槸鍚︽槸鍔ㄦ佸垎閰嶇殑 C/C++ 瀵硅薄蹇犲疄涓斿垢榪愮殑鐢ㄦ埛錛熸偍鏄惁鍦ㄦā鍧楅棿鐨勫線榪旈氫俊涓綣佸湴浣跨敤浜?#8220;鑷姩鍖?#8221;錛熸偍鐨勭▼搴忔槸鍚﹀洜鍫嗗垎閰嶈岃繍琛岃搗鏉ュ緢鎱紵涓嶄粎浠呮偍閬囧埌榪欐牱鐨勯棶棰樸傚嚑涔庢墍鏈夐」鐩繜鏃╅兘浼氶亣鍒板爢闂銆傚ぇ瀹墮兘鎯寵錛?#8220;鎴戠殑浠g爜鐪熸濂斤紝鍙槸鍫嗗お鎱?#8221;銆傞偅鍙槸閮ㄥ垎姝g‘銆傛洿娣卞叆鐞嗚В鍫嗗強鍏剁敤娉曘佷互鍙婁細鍙戠敓浠涔堥棶棰橈紝鏄緢鏈夌敤鐨勩? 浠涔堟槸鍫嗭紵 錛堝鏋滄偍宸茬粡鐭ラ亾浠涔堟槸鍫嗭紝鍙互璺沖埌“浠涔堟槸甯歌鐨勫爢鎬ц兘闂錛?#8221;閮ㄥ垎錛? 鍦ㄧ▼搴忎腑錛屼嬌鐢ㄥ爢鏉ュ姩鎬佸垎閰嶅拰閲婃斁瀵硅薄銆傚湪涓嬪垪鎯呭喌涓嬶紝璋冪敤鍫嗘搷浣滐細 浜嬪厛涓嶇煡閬撶▼搴忔墍闇瀵硅薄鐨勬暟閲忓拰澶у皬銆? 瀵硅薄澶ぇ鑰屼笉閫傚悎鍫嗘爤鍒嗛厤紼嬪簭銆? 鍫嗕嬌鐢ㄤ簡鍦ㄨ繍琛屾椂鍒嗛厤緇欎唬鐮佸拰鍫嗘爤鐨勫唴瀛樹箣澶栫殑閮ㄥ垎鍐呭瓨銆備笅鍥劇粰鍑轟簡鍫嗗垎閰嶇▼搴忕殑涓嶅悓灞傘? GlobalAlloc/GlobalFree錛歁icrosoft Win32 鍫嗚皟鐢紝榪欎簺璋冪敤鐩存帴涓庢瘡涓繘紼嬬殑榛樿鍫嗚繘琛屽璇濄? LocalAlloc/LocalFree錛歐in32 鍫嗚皟鐢紙涓轟簡涓?nbsp;Microsoft Windows NT 鍏煎錛夛紝榪欎簺璋冪敤鐩存帴涓庢瘡涓繘紼嬬殑榛樿鍫嗚繘琛屽璇濄? COM 鐨?nbsp;IMalloc 鍒嗛厤紼嬪簭錛堟垨 CoTaskMemAlloc / CoTaskMemFree錛夛細鍑芥暟浣跨敤姣忎釜榪涚▼鐨勯粯璁ゅ爢銆傝嚜鍔ㄥ寲紼嬪簭浣跨敤“緇勪歡瀵硅薄妯″瀷 (COM)”鐨勫垎閰嶇▼搴忥紝鑰岀敵璇風殑紼嬪簭浣跨敤姣忎釜榪涚▼鍫嗐? C/C++ 榪愯鏃?nbsp;(CRT) 鍒嗛厤紼嬪簭錛氭彁渚涗簡 malloc() 鍜?nbsp;free() 浠ュ強 new 鍜?nbsp;delete 鎿嶄綔絎︺傚 Microsoft Visual Basic 鍜?nbsp;Java 絳夎璦涔熸彁渚涗簡鏂扮殑鎿嶄綔絎﹀茍浣跨敤鍨冨溇鏀墮泦鏉ヤ唬鏇垮爢銆侰RT 鍒涘緩鑷繁鐨勭鏈夊爢錛岄┗鐣欏湪 Win32 鍫嗙殑欏墮儴銆? Windows NT 涓紝Win32 鍫嗘槸 Windows NT 榪愯鏃跺垎閰嶇▼搴忓懆鍥寸殑钖勫眰銆傛墍鏈?nbsp;API 杞彂瀹冧滑鐨勮姹傜粰 NTDLL銆? Windows NT 榪愯鏃跺垎閰嶇▼搴忔彁渚?nbsp;Windows NT 鍐呯殑鏍稿績鍫嗗垎閰嶇▼搴忋傚畠鐢卞叿鏈?nbsp;128 涓ぇ灝忎粠 8 鍒?nbsp;1,024 瀛楄妭鐨勭┖闂插垪琛ㄧ殑鍓嶇鍒嗛厤紼嬪簭緇勬垚銆傚悗绔垎閰嶇▼搴忎嬌鐢ㄨ櫄鎷熷唴瀛樻潵淇濈暀鍜屾彁浜ら〉銆? 鍦ㄥ浘琛ㄧ殑搴曢儴鏄?#8220;铏氭嫙鍐呭瓨鍒嗛厤紼嬪簭”錛屾搷浣滅郴緇熶嬌鐢ㄥ畠鏉ヤ繚鐣欏拰鎻愪氦欏點傛墍鏈夊垎閰嶇▼搴忎嬌鐢ㄨ櫄鎷熷唴瀛樿繘琛屾暟鎹殑瀛樺彇銆? 鍒嗛厤鍜岄噴鏀懼潡涓嶅氨閭d箞綆鍗曞悧錛熶負浣曡姳璐硅繖涔堥暱鏃墮棿錛? 鍫嗗疄鐜扮殑娉ㄦ剰浜嬮」 浼犵粺涓婏紝鎿嶄綔緋葷粺鍜岃繍琛屾椂搴撴槸涓庡爢鐨勫疄鐜板叡瀛樼殑銆傚湪涓涓繘紼嬬殑寮濮嬶紝鎿嶄綔緋葷粺鍒涘緩涓涓粯璁ゅ爢錛屽彨鍋?#8220;榪涚▼鍫?#8221;銆傚鏋滄病鏈夊叾浠栧爢鍙嬌鐢紝鍒欏潡鐨勫垎閰嶄嬌鐢?#8220;榪涚▼鍫?#8221;銆傝璦榪愯鏃朵篃鑳藉湪榪涚▼鍐呭垱寤哄崟鐙殑鍫嗐傦紙渚嬪錛孋 榪愯鏃跺垱寤哄畠鑷繁鐨勫爢銆傦級闄よ繖浜涗笓鐢ㄧ殑鍫嗗錛屽簲鐢ㄧ▼搴忔垨璁稿宸茶澆鍏ョ殑鍔ㄦ侀摼鎺ュ簱 (DLL) 涔嬩竴鍙互鍒涘緩鍜屼嬌鐢ㄥ崟鐙殑鍫嗐俉in32 鎻愪緵涓鏁村 API 鏉ュ垱寤哄拰浣跨敤縐佹湁鍫嗐傛湁鍏沖爢鍑芥暟錛堣嫳鏂囷級鐨勮灝芥寚瀵鹼紝璇峰弬瑙?nbsp;MSDN銆? 褰撳簲鐢ㄧ▼搴忔垨 DLL 鍒涘緩縐佹湁鍫嗘椂錛岃繖浜涘爢瀛樺湪浜庤繘紼嬬┖闂達紝騫朵笖鍦ㄨ繘紼嬪唴鏄彲璁塊棶鐨勩備粠緇欏畾鍫嗗垎閰嶇殑鏁版嵁灝嗗湪鍚屼竴涓爢涓婇噴鏀俱傦紙涓嶈兘浠庝竴涓爢鍒嗛厤鑰屽湪鍙︿竴涓爢閲婃斁銆傦級 鍦ㄦ墍鏈夎櫄鎷熷唴瀛樼郴緇熶腑錛屽爢椹葷暀鍦ㄦ搷浣滅郴緇熺殑“铏氭嫙鍐呭瓨綆$悊鍣?#8221;鐨勯《閮ㄣ傝璦榪愯鏃跺爢涔熼┗鐣欏湪铏氭嫙鍐呭瓨欏墮儴銆傛煇浜涙儏鍐典笅錛岃繖浜涘爢鏄搷浣滅郴緇熷爢涓殑灞傦紝鑰岃璦榪愯鏃跺爢鍒欓氳繃澶у潡鐨勫垎閰嶆潵鎵ц鑷繁鐨勫唴瀛樼鐞嗐備笉浣跨敤鎿嶄綔緋葷粺鍫嗭紝鑰屼嬌鐢ㄨ櫄鎷熷唴瀛樺嚱鏁版洿鍒╀簬鍫嗙殑鍒嗛厤鍜屽潡鐨勪嬌鐢ㄣ? 鍏稿瀷鐨勫爢瀹炵幇鐢卞墠銆佸悗绔垎閰嶇▼搴忕粍鎴愩傚墠绔垎閰嶇▼搴忕淮鎸佸浐瀹氬ぇ灝忓潡鐨勭┖闂插垪琛ㄣ傚浜庝竴嬈″垎閰嶈皟鐢紝鍫嗗皾璇曚粠鍓嶇鍒楄〃鎵懼埌涓涓嚜鐢卞潡銆傚鏋滃け璐ワ紝鍫嗚榪粠鍚庣錛堜繚鐣欏拰鎻愪氦铏氭嫙鍐呭瓨錛夊垎閰嶄竴涓ぇ鍧楁潵婊¤凍璇鋒眰銆傞氱敤鐨勫疄鐜版湁姣忓潡鍒嗛厤鐨勫紑閿錛岃繖灝嗚楄垂鎵ц鍛ㄦ湡錛屼篃鍑忓皯浜嗗彲浣跨敤鐨勫瓨鍌ㄧ┖闂淬? Knowledge Base 鏂囩珷 Q10758錛?#8220;鐢?nbsp;calloc() 鍜?nbsp;malloc() 綆$悊鍐呭瓨” 錛堟悳绱㈡枃绔犵紪鍙鳳級, 鍖呭惈浜嗘湁鍏寵繖浜涗富棰樼殑鏇村鑳屾櫙鐭ヨ瘑銆傚彟澶栵紝鏈夊叧鍫嗗疄鐜板拰璁捐鐨勮緇嗚璁轟篃鍙湪涓嬪垪钁椾綔涓壘鍒幫細“Dynamic Storage Allocation: A Survey and Critical Review”錛屼綔鑰?nbsp;Paul R. Wilson銆丮ark S. Johnstone銆丮ichael Neely 鍜?nbsp;David Boles錛?#8220;International Workshop on Memory Management”, 浣滆?nbsp;Kinross, Scotland, UK, 1995 騫?nbsp;9 鏈?http://www.cs.utexas.edu/users/oops/papers.html) 錛堣嫳鏂囷級銆?
浣滆咃細121.30.67.*
7
鍫嗗拰鏍堢殑鍖哄埆 (杞創)
Windows NT 鐨勫疄鐜幫紙Windows NT 鐗堟湰 4.0 鍜屾洿鏂扮増鏈級 浣跨敤浜?nbsp;127 涓ぇ灝忎粠 8 鍒?nbsp;1,024 瀛楄妭鐨?nbsp;8 瀛楄妭瀵歸綈鍧楃┖闂插垪琛ㄥ拰涓涓?#8220;澶у潡”鍒楄〃銆?#8220;澶у潡”鍒楄〃錛堢┖闂插垪琛╗0]錛?nbsp;淇濆瓨澶т簬 1,024 瀛楄妭鐨勫潡銆傜┖闂插垪琛ㄥ綰充簡鐢ㄥ弻鍚戦摼琛ㄩ摼鎺ュ湪涓璧風殑瀵硅薄銆傞粯璁ゆ儏鍐典笅錛?#8220;榪涚▼鍫?#8221;鎵ц鏀墮泦鎿嶄綔銆傦紙鏀墮泦鏄皢鐩擱偦絀洪棽鍧楀悎騫舵垚涓涓ぇ鍧楃殑鎿嶄綔銆傦級鏀墮泦鑰楄垂浜嗛澶栫殑鍛ㄦ湡錛屼絾鍑忓皯浜嗗爢鍧楃殑鍐呴儴紕庣墖銆? 鍗曚竴鍏ㄥ眬閿佷繚鎶ゅ爢錛岄槻姝㈠綰跨▼寮忕殑浣跨敤銆傦紙璇峰弬瑙?#8220;Server Performance and Scalability Killers”涓殑絎竴涓敞鎰忎簨欏? George Reilly 鎵钁楋紝鍦?nbsp;“MSDN Online Web Workshop”涓婏紙绔欑偣錛?a target=_blank>http://msdn.microsoft.com/workshop/server/iis/tencom.asp 錛堣嫳鏂囷級銆傦級鍗曚竴鍏ㄥ眬閿佹湰璐ㄤ笂鏄敤鏉ヤ繚鎶ゅ爢鏁版嵁緇撴瀯錛岄槻姝㈣法澶氱嚎紼嬬殑闅忔満瀛樺彇銆傝嫢鍫嗘搷浣滃お棰戠箒錛屽崟涓鍏ㄥ眬閿佷細瀵規ц兘鏈変笉鍒╃殑褰卞搷銆? 浠涔堟槸甯歌鐨勫爢鎬ц兘闂錛? 浠ヤ笅鏄偍浣跨敤鍫嗘椂浼氶亣鍒扮殑鏈甯歌闂錛?nbsp; 鍒嗛厤鎿嶄綔閫犳垚鐨勯熷害鍑忔參銆傚厜鍒嗛厤灝辮楄垂寰堥暱鏃墮棿銆傛渶鍙兘瀵艱嚧榪愯閫熷害鍑忔參鍘熷洜鏄┖闂插垪琛ㄦ病鏈夊潡錛屾墍浠ヨ繍琛屾椂鍒嗛厤紼嬪簭浠g爜浼氳楄垂鍛ㄦ湡瀵繪壘杈冨ぇ鐨勭┖闂插潡錛屾垨浠庡悗绔垎閰嶇▼搴忓垎閰嶆柊鍧椼? 閲婃斁鎿嶄綔閫犳垚鐨勯熷害鍑忔參銆傞噴鏀炬搷浣滆楄垂杈冨鍛ㄦ湡錛屼富瑕佹槸鍚敤浜嗘敹闆嗘搷浣溿傛敹闆嗘湡闂達紝姣忎釜閲婃斁鎿嶄綔“鏌ユ壘”瀹冪殑鐩擱偦鍧楋紝鍙栧嚭瀹冧滑騫舵瀯閫犳垚杈冨ぇ鍧楋紝鐒跺悗鍐嶆妸姝よ緝澶у潡鎻掑叆絀洪棽鍒楄〃銆傚湪鏌ユ壘鏈熼棿錛屽唴瀛樺彲鑳戒細闅忔満紕板埌錛屼粠鑰屽鑷撮珮閫熺紦瀛樹笉鑳藉懡涓紝鎬ц兘闄嶄綆銆? 鍫嗙珵浜夐犳垚鐨勯熷害鍑忔參銆傚綋涓や釜鎴栧涓嚎紼嬪悓鏃惰闂暟鎹紝鑰屼笖涓涓嚎紼嬬戶緇繘琛屼箣鍓嶅繀欏葷瓑寰呭彟涓涓嚎紼嬪畬鎴愭椂灝卞彂鐢熺珵浜夈傜珵浜夋繪槸瀵艱嚧楹葷儲錛涜繖涔熸槸鐩墠澶氬鐞嗗櫒緋葷粺閬囧埌鐨勬渶澶ч棶棰樸傚綋澶ч噺浣跨敤鍐呭瓨鍧楃殑搴旂敤紼嬪簭鎴?nbsp;DLL 浠ュ綰跨▼鏂瑰紡榪愯錛堟垨榪愯浜庡澶勭悊鍣ㄧ郴緇熶笂錛夋椂灝嗗鑷撮熷害鍑忔參銆傚崟涓閿佸畾鐨勪嬌鐢ㄢ斿父鐢ㄧ殑瑙e喅鏂規鈥旀剰鍛崇潃浣跨敤鍫嗙殑鎵鏈夋搷浣滄槸搴忓垪鍖栫殑銆傚綋絳夊緟閿佸畾鏃跺簭鍒楀寲浼氬紩璧風嚎紼嬪垏鎹笂涓嬫枃銆傚彲浠ユ兂璞′氦鍙夎礬鍙i棯鐑佺殑綰㈢伅澶勮蛋璧板仠鍋滃鑷寸殑閫熷害鍑忔參銆?nbsp; 绔炰簤閫氬父浼氬鑷寸嚎紼嬪拰榪涚▼鐨勪笂涓嬫枃鍒囨崲銆備笂涓嬫枃鍒囨崲鐨勫紑閿鏄緢澶х殑錛屼絾寮閿鏇村ぇ鐨勬槸鏁版嵁浠庡鐞嗗櫒楂橀熺紦瀛樹腑涓㈠け錛屼互鍙婂悗鏉ョ嚎紼嬪媧繪椂鐨勬暟鎹噸寤恒? 鍫嗙牬鍧忛犳垚鐨勯熷害鍑忔參銆傞犳垚鍫嗙牬鍧忕殑鍘熷洜鏄簲鐢ㄧ▼搴忓鍫嗗潡鐨勪笉姝g‘浣跨敤銆傞氬父鎯呭艦鍖呮嫭閲婃斁宸查噴鏀劇殑鍫嗗潡鎴栦嬌鐢ㄥ凡閲婃斁鐨勫爢鍧楋紝浠ュ強鍧楃殑瓚婄晫閲嶅啓絳夋槑鏄鵑棶棰樸傦紙鐮村潖涓嶅湪鏈枃璁ㄨ鑼冨洿涔嬪唴銆傛湁鍏沖唴瀛橀噸鍐欏拰娉勬紡絳夊叾浠栫粏鑺傦紝璇峰弬瑙?nbsp;Microsoft Visual C++(R) 璋冭瘯鏂囨。 銆傦級 棰戠箒鐨勫垎閰嶅拰閲嶅垎閰嶉犳垚鐨勯熷害鍑忔參銆傝繖鏄嬌鐢ㄨ剼鏈璦鏃墮潪甯告櫘閬嶇殑鐜拌薄銆傚瀛楃涓茶鍙嶅鍒嗛厤錛岄殢閲嶅垎閰嶅闀垮拰閲婃斁銆備笉瑕佽繖鏍峰仛錛屽鏋滃彲鑳斤紝灝介噺鍒嗛厤澶у瓧絎︿覆鍜屼嬌鐢ㄧ紦鍐插尯銆傚彟涓縐嶆柟娉曞氨鏄敖閲忓皯鐢ㄨ繛鎺ユ搷浣溿? 绔炰簤鏄湪鍒嗛厤鍜岄噴鏀炬搷浣滀腑瀵艱嚧閫熷害鍑忔參鐨勯棶棰樸傜悊鎯蟲儏鍐典笅錛屽笇鏈涗嬌鐢ㄦ病鏈夌珵浜夊拰蹇熷垎閰?閲婃斁鐨勫爢銆傚彲鎯滐紝鐜板湪榪樻病鏈夎繖鏍風殑閫氱敤鍫嗭紝涔熻灝嗘潵浼氭湁銆? 鍦ㄦ墍鏈夌殑鏈嶅姟鍣ㄧ郴緇熶腑錛堝 IIS銆丮SProxy銆丏atabaseStacks銆佺綉緇滄湇鍔″櫒銆?nbsp;Exchange 鍜屽叾浠栵級, 鍫嗛攣瀹氬疄鍦ㄦ槸涓ぇ鐡墮銆傚鐞嗗櫒鏁拌秺澶氾紝绔炰簤灝辮秺浼氭伓鍖栥? 灝介噺鍑忓皯鍫嗙殑浣跨敤 鐜板湪鎮ㄦ槑鐧戒嬌鐢ㄥ爢鏃跺瓨鍦ㄧ殑闂浜嗭紝闅鵑亾鎮ㄤ笉鎯蟲嫢鏈夎兘瑙e喅榪欎簺闂鐨勮秴綰ч瓟媯掑悧錛熸垜鍙笇鏈涙湁銆備絾娌℃湁欖旀硶鑳戒嬌鍫嗚繍琛屽姞蹇斿洜姝や笉瑕佹湡鏈涘湪浜у搧鍑鴻揣涔嬪墠鐨勬渶鍚庝竴鏄熸湡鑳藉澶т負鏀硅銆傚鏋滄彁鍓嶈鍒掑爢絳栫暐錛屾儏鍐靛皢浼氬ぇ澶уソ杞傝皟鏁翠嬌鐢ㄥ爢鐨勬柟娉曪紝鍑忓皯瀵瑰爢鐨勬搷浣滄槸鎻愰珮鎬ц兘鐨勮壇鏂廣? 濡備綍鍑忓皯浣跨敤鍫嗘搷浣滐紵閫氳繃鍒╃敤鏁版嵁緇撴瀯鍐呯殑浣嶇疆鍙噺灝戝爢鎿嶄綔鐨勬鏁般傝鑰冭檻涓嬪垪瀹炰緥錛? struct ObjectA { // objectA 鐨勬暟鎹?nbsp; } struct ObjectB { // objectB 鐨勬暟鎹?nbsp; } // 鍚屾椂浣跨敤 objectA 鍜?nbsp;objectB // // 浣跨敤鎸囬拡 // struct ObjectB { struct ObjectA * pObjA; // objectB 鐨勬暟鎹?nbsp; } // // 浣跨敤宓屽叆
浣滆咃細121.30.67.*
8
鍫嗗拰鏍堢殑鍖哄埆 (杞創)
// struct ObjectB { struct ObjectA pObjA; // objectB 鐨勬暟鎹?nbsp; } // // 闆嗗悎 – 鍦ㄥ彟涓瀵硅薄鍐呬嬌鐢?nbsp;objectA 鍜?nbsp;objectB // struct ObjectX { struct ObjectA objA; struct ObjectB objB; } 閬垮厤浣跨敤鎸囬拡鍏寵仈涓や釜鏁版嵁緇撴瀯銆傚鏋滀嬌鐢ㄦ寚閽堝叧鑱斾袱涓暟鎹粨鏋勶紝鍓嶉潰瀹炰緥涓殑瀵硅薄 A 鍜?nbsp;B 灝嗚鍒嗗埆鍒嗛厤鍜岄噴鏀俱傝繖浼氬鍔犻澶栧紑閿鈥旀垜浠閬垮厤榪欑鍋氭硶銆? 鎶婂甫鎸囬拡鐨勫瓙瀵硅薄宓屽叆鐖跺璞°傚綋瀵硅薄涓湁鎸囬拡鏃訛紝鍒欐剰鍛崇潃瀵硅薄涓湁鍔ㄦ佸厓绱狅紙鐧懼垎涔嬪叓鍗侊級鍜屾病鏈夊紩鐢ㄧ殑鏂頒綅緗傚祵鍏ュ鍔犱簡浣嶇疆浠庤屽噺灝戜簡榪涗竴姝ュ垎閰?閲婃斁鐨勯渶姹傘傝繖灝嗘彁楂樺簲鐢ㄧ▼搴忕殑鎬ц兘銆? 鍚堝茍灝忓璞″艦鎴愬ぇ瀵硅薄錛堣仛鍚堬級銆傝仛鍚堝噺灝戝垎閰嶅拰閲婃斁鐨勫潡鐨勬暟閲忋傚鏋滄湁鍑犱釜寮鍙戣咃紝鍚勮嚜寮鍙戣璁$殑涓嶅悓閮ㄥ垎錛屽垯鏈緇堜細鏈夎澶氬皬瀵硅薄闇瑕佸悎騫躲傞泦鎴愮殑鎸戞垬灝辨槸瑕佹壘鍒版紜殑鑱氬悎杈圭晫銆? 鍐呰仈緙撳啿鍖鴻兘澶熸弧瓚崇櫨鍒嗕箣鍏崄鐨勯渶瑕侊紙aka 80-20 瑙勫垯錛夈備釜鍒儏鍐典笅錛岄渶瑕佸唴瀛樼紦鍐插尯鏉ヤ繚瀛樺瓧絎︿覆/浜岃繘鍒舵暟鎹紝浣嗕簨鍏堜笉鐭ラ亾鎬誨瓧鑺傛暟銆備及璁″茍鍐呰仈涓涓ぇ灝忚兘婊¤凍鐧懼垎涔嬪叓鍗侀渶瑕佺殑緙撳啿鍖恒傚鍓╀綑鐨勭櫨鍒嗕箣浜屽崄錛屽彲浠ュ垎閰嶄竴涓柊鐨勭紦鍐插尯鍜屾寚鍚戣繖涓紦鍐插尯鐨勬寚閽堛傝繖鏍鳳紝灝卞噺灝戝垎閰嶅拰閲婃斁璋冪敤騫跺鍔犳暟鎹殑浣嶇疆絀洪棿錛屼粠鏍規湰涓婃彁楂樹唬鐮佺殑鎬ц兘銆? 鍦ㄥ潡涓垎閰嶅璞★紙鍧楀寲錛夈傚潡鍖栨槸浠ョ粍鐨勬柟寮忎竴嬈″垎閰嶅涓璞$殑鏂規硶銆傚鏋滃鍒楄〃鐨勯」榪炵畫璺熻釜錛屼緥濡傚涓涓?nbsp;{鍚嶇О錛屽紏 瀵圭殑鍒楄〃錛屾湁涓ょ閫夋嫨錛氶夋嫨涓鏄負姣忎竴涓?#8220;鍚嶇О-鍊?#8221;瀵瑰垎閰嶄竴涓妭鐐癸紱閫夋嫨浜屾槸鍒嗛厤涓涓兘瀹圭撼錛堝浜斾釜錛?#8220;鍚嶇О-鍊?#8221;瀵圭殑緇撴瀯銆備緥濡傦紝涓鑸儏鍐典笅錛屽鏋滃瓨鍌ㄥ洓瀵癸紝灝卞彲鍑忓皯鑺傜偣鐨勬暟閲忥紝濡傛灉闇瑕侀澶栫殑絀洪棿鏁伴噺錛屽垯浣跨敤闄勫姞鐨勯摼琛ㄦ寚閽堛?nbsp; 鍧楀寲鏄弸濂界殑澶勭悊鍣ㄩ珮閫熺紦瀛橈紝鐗瑰埆鏄浜?nbsp;L1-楂橀熺紦瀛橈紝鍥犱負瀹冩彁渚涗簡澧炲姞鐨勪綅緗?nbsp;鈥斾笉鐢ㄨ瀵逛簬鍧楀垎閰嶏紝寰堝鏁版嵁鍧椾細鍦ㄥ悓涓涓櫄鎷熼〉涓? 姝g‘浣跨敤 _amblksiz銆侰 榪愯鏃?nbsp;(CRT) 鏈夊畠鐨勮嚜瀹氫箟鍓嶇鍒嗛厤紼嬪簭錛岃鍒嗛厤紼嬪簭浠庡悗绔紙Win32 鍫嗭級鍒嗛厤澶у皬涓?nbsp;_amblksiz 鐨勫潡銆傚皢 _amblksiz 璁劇疆涓鴻緝楂樼殑鍊艱兘娼滃湪鍦板噺灝戝鍚庣鐨勮皟鐢ㄦ鏁般傝繖鍙騫挎硾浣跨敤 CRT 鐨勭▼搴忛傜敤銆? 浣跨敤涓婅堪鎶鏈皢鑾峰緱鐨勫ソ澶勪細鍥犲璞$被鍨嬨佸ぇ灝忓強宸ヤ綔閲忚屾湁鎵涓嶅悓銆備絾鎬昏兘鍦ㄦц兘鍜屽彲鍗囩緝鎬ф柟闈㈡湁鎵鏀惰幏銆傚彟涓鏂歸潰錛屼唬鐮佷細鏈夌偣鐗規畩錛屼絾濡傛灉緇忚繃娣辨濈啛铏戯紝浠g爜榪樻槸寰堝鏄撶鐞嗙殑銆? 鍏朵粬鎻愰珮鎬ц兘鐨勬妧鏈? 涓嬮潰鏄竴浜涙彁楂橀熷害鐨勬妧鏈細 浣跨敤 Windows NT5 鍫?nbsp; 鐢變簬鍑犱釜鍚屼簨鐨勫姫鍔涘拰杈涘嫟宸ヤ綔錛?998 騫村垵 Microsoft Windows(R) 2000 涓湁浜嗗嚑涓噸澶ф敼榪涳細 鏀硅繘浜嗗爢浠g爜鍐呯殑閿佸畾銆傚爢浠g爜瀵規瘡鍫嗕竴涓攣銆傚叏灞閿佷繚鎶ゅ爢鏁版嵁緇撴瀯錛岄槻姝㈠綰跨▼寮忕殑浣跨敤銆備絾涓嶅垢鐨勬槸錛屽湪楂橀氫俊閲忕殑鎯呭喌涓嬶紝鍫嗕粛鍙楀洶浜庡叏灞閿侊紝瀵艱嚧楂樼珵浜夊拰浣庢ц兘銆俉indows 2000 涓紝閿佸唴浠g爜鐨勪復鐣屽尯灝嗙珵浜夌殑鍙兘鎬у噺鍒版渶灝?浠庤屾彁楂樹簡鍙幾緙╂с? 浣跨敤 “Lookaside”鍒楄〃銆傚爢鏁版嵁緇撴瀯瀵瑰潡鐨勬墍鏈夌┖闂查」浣跨敤浜嗗ぇ灝忓湪 8 鍒?nbsp;1,024 瀛楄妭錛堜互 8-瀛楄妭閫掑錛夌殑蹇熼珮閫熺紦瀛樸傚揩閫熼珮閫熺紦瀛樻渶鍒濅繚鎶ゅ湪鍏ㄥ眬閿佸唴銆傜幇鍦紝浣跨敤 lookaside 鍒楄〃鏉ヨ闂繖浜涘揩閫熼珮閫熺紦瀛樼┖闂插垪琛ㄣ傝繖浜涘垪琛ㄤ笉瑕佹眰閿佸畾錛岃屾槸浣跨敤 64 浣嶇殑浜掗攣鎿嶄綔錛屽洜姝ゆ彁楂樹簡鎬ц兘銆? 鍐呴儴鏁版嵁緇撴瀯綆楁硶涔熷緱鍒版敼榪涖? 榪欎簺鏀硅繘閬垮厤浜嗗鍒嗛厤楂橀熺紦瀛樼殑闇姹傦紝浣嗕笉鎺掗櫎鍏朵粬鐨勪紭鍖栥備嬌鐢?nbsp;Windows NT5 鍫嗚瘎浼版偍鐨勪唬鐮侊紱瀹冨灝忎簬 1,024 瀛楄妭 (1 KB) 鐨勫潡錛堟潵鑷墠绔垎閰嶇▼搴忕殑鍧楋級鏄渶浣崇殑銆侴lobalAlloc() 鍜?nbsp;LocalAlloc() 寤虹珛鍦ㄥ悓涓鍫嗕笂錛屾槸瀛樺彇姣忎釜榪涚▼鍫嗙殑閫氱敤鏈哄埗銆傚鏋滃笇鏈涜幏寰楅珮鐨勫眬閮ㄦц兘錛屽垯浣跨敤 Heap(R) API 鏉ュ瓨鍙栨瘡涓繘紼嬪爢錛屾垨涓哄垎閰嶆搷浣滃垱寤鴻嚜宸辯殑鍫嗐傚鏋滈渶瑕佸澶у潡鎿嶄綔錛屼篃鍙互鐩存帴浣跨敤 VirtualAlloc() / VirtualFree() 鎿嶄綔銆? 涓婅堪鏀硅繘宸插湪 Windows 2000 beta 2 鍜?nbsp;Windows NT 4.0 SP4 涓嬌鐢ㄣ傛敼榪涘悗錛屽爢閿佺殑绔炰簤鐜囨樉钁楅檷浣庛傝繖浣挎墍鏈?nbsp;Win32 鍫嗙殑鐩存帴鐢ㄦ埛鍙楃泭銆侰RT 鍫嗗緩绔嬩簬 Win32 鍫嗙殑欏墮儴錛屼絾瀹冧嬌鐢ㄨ嚜宸辯殑灝忓潡鍫嗭紝鍥犺屼笉鑳戒粠 Windows NT 鏀硅繘涓彈鐩娿傦紙Visual C++ 鐗堟湰 6.0 涔熸湁鏀硅繘鐨勫爢鍒嗛厤紼嬪簭銆傦級
浣滆咃細121.30.67.*
9
鍫嗗拰鏍堢殑鍖哄埆 (杞創)
浣跨敤鍒嗛厤楂橀熺紦瀛?nbsp; 鍒嗛厤楂橀熺紦瀛樺厑璁擱珮閫熺紦瀛樺垎閰嶇殑鍧楋紝浠ヤ究灝嗘潵閲嶇敤銆傝繖鑳藉鍑忓皯瀵硅繘紼嬪爢錛堟垨鍏ㄥ眬鍫嗭級鐨勫垎閰?閲婃斁璋冪敤鐨勬鏁幫紝涔熷厑璁告渶澶ч檺搴︾殑閲嶇敤鏇劇粡鍒嗛厤鐨勫潡銆傚彟澶栵紝鍒嗛厤楂橀熺紦瀛樺厑璁告敹闆嗙粺璁′俊鎭?浠ヤ究杈冨ソ鍦扮悊瑙e璞″湪杈冮珮灞傛涓婄殑浣跨敤銆? 鍏稿瀷鍦幫紝鑷畾涔夊爢鍒嗛厤紼嬪簭鍦ㄨ繘紼嬪爢鐨勯《閮ㄥ疄鐜般傝嚜瀹氫箟鍫嗗垎閰嶇▼搴忎笌緋葷粺鍫嗙殑琛屼負寰堢浉浼箋備富瑕佺殑宸埆鏄畠鍦ㄨ繘紼嬪爢鐨勯《閮ㄤ負鍒嗛厤鐨勫璞℃彁渚涢珮閫熺紦瀛樸傞珮閫熺紦瀛樿璁℃垚涓濂楀浐瀹氬ぇ灝忥紙濡?nbsp;32 瀛楄妭銆?4 瀛楄妭銆?28 瀛楄妭絳夛級銆傝繖涓涓緢濂界殑絳栫暐錛屼絾榪欑鑷畾涔夊爢鍒嗛厤紼嬪簭涓㈠け涓庡垎閰嶅拰閲婃斁鐨勫璞$浉鍏崇殑“璇箟淇℃伅”銆?nbsp; 涓庤嚜瀹氫箟鍫嗗垎閰嶇▼搴忕浉鍙嶏紝“鍒嗛厤楂橀熺紦瀛?#8221;浣滀負姣忕被鍒嗛厤楂橀熺紦瀛樻潵瀹炵幇銆傞櫎鑳藉鎻愪緵鑷畾涔夊爢鍒嗛厤紼嬪簭鐨勬墍鏈夊ソ澶勪箣澶栵紝瀹冧滑榪樿兘澶熶繚鐣欏ぇ閲忚涔変俊鎭傛瘡涓垎閰嶉珮閫熺紦瀛樺鐞嗙▼搴忎笌涓涓洰鏍囦簩榪涘埗瀵硅薄鍏寵仈銆傚畠鑳藉浣跨敤涓濂楀弬鏁拌繘琛屽垵濮嬪寲錛岃繖浜涘弬鏁拌〃紺哄茍鍙戠駭鍒佸璞″ぇ灝忓拰淇濇寔鍦ㄧ┖闂插垪琛ㄤ腑鐨勫厓绱犵殑鏁伴噺絳夈傚垎閰嶉珮閫熺紦瀛樺鐞嗙▼搴忓璞$淮鎸佽嚜宸辯殑縐佹湁絀洪棽瀹炰綋姹狅紙涓嶈秴榪囨寚瀹氱殑闃鍊鹼級騫朵嬌鐢ㄧ鏈変繚鎶ら攣銆傚悎鍦ㄤ竴璧鳳紝鍒嗛厤楂橀熺紦瀛樺拰縐佹湁閿佸噺灝戜簡涓庝富緋葷粺鍫嗙殑閫氫俊閲忥紝鍥犺屾彁渚涗簡澧炲姞鐨勫茍鍙戙佹渶澶ч檺搴︾殑閲嶇敤鍜岃緝楂樼殑鍙幾緙╂с? 闇瑕佷嬌鐢ㄦ竻鐞嗙▼搴忔潵瀹氭湡媯鏌ユ墍鏈夊垎閰嶉珮閫熺紦瀛樺鐞嗙▼搴忕殑媧誨姩鎯呭喌騫跺洖鏀舵湭鐢ㄧ殑璧勬簮銆傚鏋滃彂鐜版病鏈夋椿鍔紝灝嗛噴鏀懼垎閰嶅璞$殑姹狅紝浠庤屾彁楂樻ц兘銆? 鍙互瀹℃牳姣忎釜鍒嗛厤/閲婃斁媧誨姩銆傜涓綰т俊鎭寘鎷璞°佸垎閰嶅拰閲婃斁璋冪敤鐨勬繪暟銆傞氳繃鏌ョ湅瀹冧滑鐨勭粺璁′俊鎭彲浠ュ緱鍑哄悇涓璞′箣闂寸殑璇箟鍏崇郴銆傚埄鐢ㄤ互涓婁粙緇嶇殑璁稿鎶鏈箣涓錛岃繖縐嶅叧緋誨彲浠ョ敤鏉ュ噺灝戝唴瀛樺垎閰嶃? 鍒嗛厤楂橀熺紦瀛樹篃璧峰埌浜嗚皟璇曞姪鎵嬬殑浣滅敤錛屽府鍔╂偍璺熻釜娌℃湁瀹屽叏娓呴櫎鐨勫璞℃暟閲忋傞氳繃鏌ョ湅鍔ㄦ佸爢鏍堣繑鍥炶釜榪瑰拰闄ゆ病鏈夋竻闄ょ殑瀵硅薄涔嬪鐨勭鍚嶏紝鐢氳嚦鑳藉鎵懼埌紜垏鐨勫け璐ョ殑璋冪敤鑰呫? MP 鍫?nbsp; MP 鍫嗘槸瀵瑰澶勭悊鍣ㄥ弸濂界殑鍒嗗竷寮忓垎閰嶇殑紼嬪簭鍖咃紝鍦?nbsp;Win32 SDK錛圵indows NT 4.0 鍜屾洿鏂扮増鏈級涓彲浠ュ緱鍒般傛渶鍒濈敱 JVert 瀹炵幇錛屾澶勫爢鎶借薄寤虹珛鍦?nbsp;Win32 鍫嗙▼搴忓寘鐨勯《閮ㄣ侻P 鍫嗗垱寤哄涓?nbsp;Win32 鍫嗭紝騫惰瘯鍥懼皢鍒嗛厤璋冪敤鍒嗗竷鍒頒笉鍚屽爢錛屼互鍑忓皯鍦ㄦ墍鏈夊崟涓閿佷笂鐨勭珵浜夈? 鏈▼搴忓寘鏄ソ鐨勬楠?nbsp;鈥斾竴縐嶆敼榪涚殑 MP-鍙嬪ソ鐨勮嚜瀹氫箟鍫嗗垎閰嶇▼搴忋備絾鏄紝瀹冧笉鎻愪緵璇箟淇℃伅鍜岀己涔忕粺璁″姛鑳姐傞氬父灝?nbsp;MP 鍫嗕綔涓?nbsp;SDK 搴撴潵浣跨敤銆傚鏋滀嬌鐢ㄨ繖涓?nbsp;SDK 鍒涘緩鍙噸鐢ㄧ粍浠訛紝鎮ㄥ皢澶уぇ鍙楃泭銆備絾鏄紝濡傛灉鍦ㄦ瘡涓?nbsp;DLL 涓緩绔嬭繖涓?nbsp;SDK 搴擄紝灝嗗鍔犲伐浣滆緗? 閲嶆柊鎬濊冪畻娉曞拰鏁版嵁緇撴瀯 瑕佸湪澶氬鐞嗗櫒鏈哄櫒涓婁幾緙╋紝鍒欑畻娉曘佸疄鐜般佹暟鎹粨鏋勫拰紜歡蹇呴』鍔ㄦ佷幾緙┿傝鐪嬫渶緇忓父鍒嗛厤鍜岄噴鏀劇殑鏁版嵁緇撴瀯銆傝瘯闂紝“鎴戣兘鐢ㄤ笉鍚岀殑鏁版嵁緇撴瀯瀹屾垚姝ゅ伐浣滃悧錛?#8221;渚嬪錛屽鏋滃湪搴旂敤紼嬪簭鍒濆鍖栨椂鍔犺澆浜嗗彧璇婚」鐨勫垪琛紝榪欎釜鍒楄〃涓嶅繀鏄嚎鎬ч摼鎺ョ殑鍒楄〃銆傚鏋滄槸鍔ㄦ佸垎閰嶇殑鏁扮粍灝遍潪甯稿ソ銆傚姩鎬佸垎閰嶇殑鏁扮粍灝嗗噺灝戝唴瀛樹腑鐨勫爢鍧楀拰紕庣墖錛屼粠鑰屽寮烘ц兘銆? 鍑忓皯闇瑕佺殑灝忓璞$殑鏁伴噺鍑忓皯鍫嗗垎閰嶇▼搴忕殑璐熻澆銆備緥濡傦紝鎴戜滑鍦ㄦ湇鍔″櫒鐨勫叧閿鐞嗚礬寰勪笂浣跨敤浜斾釜涓嶅悓鐨勫璞★紝姣忎釜瀵硅薄鍗曠嫭鍒嗛厤鍜岄噴鏀俱備竴璧烽珮閫熺紦瀛樿繖浜涘璞★紝鎶婂爢璋冪敤浠庝簲涓噺灝戝埌涓涓紝鏄捐憲鍑忓皯浜嗗爢鐨勮礋杞斤紝鐗瑰埆褰撴瘡縐掗挓澶勭悊 1,000 涓互涓婄殑璇鋒眰鏃躲? 濡傛灉澶ч噺浣跨敤“Automation”緇撴瀯錛岃鑰冭檻浠庝富綰夸唬鐮佷腑鍒犻櫎“Automation BSTR”錛屾垨鑷沖皯閬垮厤閲嶅鐨?nbsp;BSTR 鎿嶄綔銆傦紙BSTR 榪炴帴瀵艱嚧榪囧鐨勯噸鍒嗛厤鍜屽垎閰?閲婃斁鎿嶄綔銆傦級 鎽樿 瀵規墍鏈夊鉤鍙板線寰閮藉瓨鍦ㄥ爢瀹炵幇錛屽洜姝ゆ湁宸ㄥぇ鐨勫紑閿銆傛瘡涓崟鐙唬鐮侀兘鏈夌壒瀹氱殑瑕佹眰錛屼絾璁捐鑳介噰鐢ㄦ湰鏂囪璁虹殑鍩烘湰鐞嗚鏉ュ噺灝戝爢涔嬮棿鐨勭浉浜掍綔鐢ㄣ?nbsp; 璇勪環鎮ㄧ殑浠g爜涓爢鐨勪嬌鐢ㄣ? 鏀硅繘鎮ㄧ殑浠g爜錛屼互浣跨敤杈冨皯鐨勫爢璋冪敤錛氬垎鏋愬叧閿礬寰勫拰鍥哄畾鏁版嵁緇撴瀯銆? 鍦ㄥ疄鐜拌嚜瀹氫箟鐨勫寘瑁呯▼搴忎箣鍓嶄嬌鐢ㄩ噺鍖栧爢璋冪敤鎴愭湰鐨勬柟娉曘? 濡傛灉瀵規ц兘涓嶆弧鎰忥紝璇瘋姹?nbsp;OS 緇勬敼榪涘爢銆傛洿澶氳繖綾昏姹傛剰鍛崇潃瀵規敼榪涘爢鐨勬洿澶氬叧娉ㄣ? 瑕佹眰 C 榪愯鏃剁粍閽堝 OS 鎵鎻愪緵鐨勫爢鍒朵綔灝忓閥鐨勫垎閰嶅寘瑁呯▼搴忋傞殢鐫 OS 鍫嗙殑鏀硅繘錛孋 榪愯鏃跺爢璋冪敤鐨勬垚鏈皢鍑忓皬銆? 鎿嶄綔緋葷粺錛圵indows NT 瀹舵棌錛夋鍦ㄤ笉鏂敼榪涘爢銆傝闅忔椂鍏蟲敞鍜屽埄鐢ㄨ繖浜涙敼榪涖? Murali Krishnan 鏄?nbsp;Internet Information Server (IIS) 緇勭殑棣栧腑杞歡璁捐宸ョ▼甯堛備粠 1.0 鐗堟湰寮濮嬩粬灝辮璁?nbsp;IIS錛屽茍鎴愬姛鍙戣浜?nbsp;1.0 鐗堟湰鍒?nbsp;4.0 鐗堟湰銆侻urali 緇勭粐騫墮瀵?nbsp;IIS 鎬ц兘緇勪笁騫?nbsp;(1995-1998), 浠庝竴寮濮嬪氨褰卞搷 IIS 鎬ц兘銆備粬鎷ユ湁濞佹柉搴鋒槦宸?nbsp;Madison 澶у鐨?nbsp;M.S.鍜屽嵃搴?nbsp;Anna 澶у鐨?nbsp;B.S.銆傚伐浣滀箣澶栵紝浠栧枩嬈㈤槄璇匯佹墦鎺掔悆鍜屽搴児楗?
鍘熷笘鏉ヨ嚜浜庯細http://tieba.baidu.com/f?kz=150791801
]]> I/O 鍚屾錛屽紓姝ワ紝闃誨錛岄潪闃誨闂 http://m.shnenglu.com/jianlinzhang/archive/2009/07/10/89739.html寮犲緩鏋?/dc:creator>寮犲緩鏋?/author>Fri, 10 Jul 2009 09:30:00 GMT http://m.shnenglu.com/jianlinzhang/archive/2009/07/10/89739.html http://m.shnenglu.com/jianlinzhang/comments/89739.html http://m.shnenglu.com/jianlinzhang/archive/2009/07/10/89739.html#Feedback 0 http://m.shnenglu.com/jianlinzhang/comments/commentRss/89739.html http://m.shnenglu.com/jianlinzhang/services/trackbacks/89739.html IO - 鍚屾錛屽紓姝ワ紝闃誨錛岄潪闃誨 鍚屾錛坰ynchronous錛?IO鍜屽紓姝ワ紙asynchronous錛?IO錛岄樆濉烇紙blocking錛?IO鍜岄潪闃誨錛坣on-blocking錛塈O 錛屾垜鐩鎬俊榪欏嚑涓瘝鍥版壈榪囧緢澶氫漢錛屾洿鐥涜嫤鐨勬槸錛屽鏋滀綘鏌ラ槄榪囨枃鐚祫鏂欙紝浣犱細鍙戠幇涓嶅悓鐨勮祫鏂欎腑鐨勮В閲婃槸涓嶄竴鏍風殑錛屼緥濡傚湪wiki涓紝寮傛鍜岄潪闃誨琚綋鎴愪簡涓涓蹇?銆?br>鍑虹幇榪欑鎯呭喌鐨勫師鍥狅紝鎴戣涓哄緢澶х▼搴︿笂鏄洜涓篒O榪欎釜姒傚康鏈韓灝卞緢瀹芥硾錛屽畠鍏跺疄鍖呭惈浜嗗ソ鍑犱釜灞傞潰銆傛瘮濡傝錛屼綘鍙互鎶婂畠鐪嬪仛鏄竴涓墿鐞嗕笂鐨勮澶囷紝涔熷彲浠ョ湅鍋氭槸 OS鎶借薄鍑烘潵鐨勪竴涓蔣浠訛紝榪樺彲浠ョ湅鍋氭槸騫蟲椂鍐欑▼搴忕敤鐨剅ead(),write()鍑芥暟錛屼笉鍚岀殑灞傞潰瀵逛簬榪欏嚑涓瘝鐨勭悊瑙d篃鏄笉涓鏍風殑銆?/p>
鍏堢湅涓涓緝浣庣殑灞傛銆傚鏋滀粠CPU鐨勮搴︾湅錛屽叾瀹炲ぇ閮ㄥ垎鐨処O閮芥槸寮傛鐨勶細鍥犱負CPU鍚姩榪欎釜IO鎿嶄綔鍚庯紝灝卞幓騫插叾瀹冪殑浜嬫儏浜嗭紝涓鐩村埌浜х敓涓涓腑鏂紝鍛婅瘔瀹僆O瀹屾垚浜嗐?br>“Most physical I/O is asynchronous鈥攖he CPU starts the transfer and goes off to do something else until the interrupt arrives. User programs are much easier to write if the I/O operations are blocking鈥攁fter a read system call the program is automatically suspended until the data are available in the buffer. It is up to the operating system to make operations that are actually interrupt-driven look blocking to the user programs.” 錛堝紩鑷?Modern Operating Systems, 2ed錛?/p>
涓嶈繃錛屾湰鏂囧茍涓嶆兂鎺㈢┒閭d箞搴曞眰鐨勪笢涓溿備綔涓虹▼搴忓憳錛屾洿澶氱殑榪樻槸浠庡簲鐢ㄥ眰闈㈡潵鑰冭檻銆傛墍浠ワ紝浠ヤ笅閲嶇偣浠嬬粛鐨勬槸搴旂敤紼嬪簭涓兘澶熼噰鐢ㄧ殑鍥涚IO鏈哄埗銆?br>錛堣鏄庯紝涓嬫枃涓浘鐗囧紩鐢ㄨ嚜 http://www.ibm.com/developerworks/cn/linux/l-async/ 錛?/p>
棣栧厛錛屼粠鏈甯哥敤鍒扮殑錛屼篃鏄渶瀹規槗鐞嗚В鐨勫悓姝ラ樆濉濱O 璇磋搗銆?/p>
鍦ㄨ繖涓ā鍨嬩腑錛屽簲鐢ㄧ▼搴忥紙application錛変負浜嗘墽琛岃繖涓猺ead鎿嶄綔錛屼細璋冪敤鐩稿簲鐨勪竴涓猻ystem call錛屽皢緋葷粺鎺у埗鏉冧氦緇檏ernel錛岀劧鍚庡氨榪涜絳夊緟錛堣繖鍏跺疄灝辨槸琚樆濉炰簡錛夈俴ernel寮濮嬫墽琛岃繖涓猻ystem call錛屾墽琛屽畬姣曞悗浼氬悜搴旂敤紼嬪簭榪斿洖鍝嶅簲錛屽簲鐢ㄧ▼搴忓緱鍒板搷搴斿悗錛屽氨涓嶅啀闃誨錛屽茍榪涜鍚庨潰鐨勫伐浣溿?br>
渚嬪錛?#8220;鍦ㄨ皟鐢?read 緋葷粺璋冪敤鏃訛紝搴旂敤紼嬪簭浼氶樆濉炲茍瀵瑰唴鏍歌繘琛屼笂涓嬫枃鍒囨崲銆傜劧鍚庝細瑙﹀彂璇繪搷浣滐紝褰撳搷搴旇繑鍥炴椂錛堜粠鎴戜滑姝e湪浠庝腑璇誨彇鐨勮澶囦腑榪斿洖錛夛紝鏁版嵁灝辮縐誨姩鍒扮敤鎴風┖闂寸殑緙撳啿鍖轟腑銆傜劧鍚庡簲鐢ㄧ▼搴忓氨浼氳В闄ら樆濉烇紙read 璋冪敤榪斿洖錛夈?#8221;
涓句竴涓祬鏄劇殑渚嬪瓙錛屽氨濂芥瘮浣犲幓涓涓摱琛屾煖鍙板瓨閽便傞鍏堬紝浣犱細灝嗗瓨閽辯殑鍗曞瓙濉ソ錛岀劧鍚庝氦緇欐煖鍛樸傝繖閲岋紝浣犲氨濂芥瘮鏄痑pplication錛屽崟瀛愬氨鏄皟鐢ㄧ殑 system call錛屾煖鍛樺氨鏄痥ernel銆傛彁浜ゅソ鍗曞瓙鍚庯紝浣犲氨鍧愬湪鏌滃彴鍓嶇瓑錛岀浉褰撲簬寮濮嬭繘琛岀瓑寰呫傛煖鍛樺姙濂戒互鍚庝細緇欎綘涓涓洖鎵э紝琛ㄧず鍔炲ソ浜嗭紝榪欏氨鏄?response銆傜劧鍚庝綘灝卞彲浠ユ嬁鐫鍥炴墽騫插叾瀹冪殑浜嬩簡銆傛敞鎰忥紝榪欎釜鏃跺欙紝濡傛灉浣犲姙瀹屼箣鍚庨┈涓婂幓鏌ヨ處錛屽瓨鐨勯挶宸茬粡鎵撳埌浣犵殑璐︽埛涓婁簡銆傚悗闈綘浼氬彂鐜幫紝榪欑偣寰堥噸瑕併?/p>
鎺ヤ笅鏉ヨ皥鍚屾闈為樆濉濱O 銆?br>鍏堢湅榪欎釜鍥撅紝
鍦╨inux涓嬶紝搴旂敤紼嬪簭鍙互閫氳繃璁劇疆鏂囦歡鎻忚堪絎︾殑灞炴_NONBLOCK錛孖/O鎿嶄綔鍙互绔嬪嵆榪斿洖錛屼絾鏄茍涓嶄繚璇両/O鎿嶄綔鎴愬姛銆?br>涔熷氨鏄錛屽綋搴旂敤紼嬪簭璁劇疆浜哋_NONBLOCK涔嬪悗錛屾墽琛寃rite鎿嶄綔錛岃皟鐢ㄧ浉搴旂殑system call錛岃繖涓猻ystem call浼氫粠鍐呮牳涓珛鍗寵繑鍥炪備絾鏄湪榪欎釜榪斿洖鐨勬椂闂寸偣錛屾暟鎹彲鑳借繕娌℃湁琚湡姝g殑鍐欏叆鍒版寚瀹氱殑鍦版柟銆備篃灝辨槸璇達紝kernel鍙槸寰堝揩鐨勮繑鍥炰簡榪欎釜 system call錛堣繖鏍鳳紝搴旂敤紼嬪簭涓嶄細琚繖涓狪O鎿嶄綔blocking錛夛紝浣嗘槸榪欎釜system call鍏蜂綋瑕佹墽琛岀殑浜嬫儏錛堝啓鏁版嵁錛夊彲鑳藉茍娌℃湁瀹屾垚銆傝屽浜庡簲鐢ㄧ▼搴忥紝铏界劧榪欎釜IO鎿嶄綔寰堝揩灝辮繑鍥炰簡錛屼絾鏄畠騫朵笉鐭ラ亾榪欎釜IO鎿嶄綔鏄惁鐪熺殑鎴愬姛浜嗭紝濡傛灉鎯崇煡閬擄紝闇瑕佸簲鐢ㄧ▼搴忎富鍔ㄥ湴鍘婚棶kernel銆?/p>
榪欐涓嶆槸鍘婚摱琛屽瓨閽憋紝鑰屾槸鍘婚摱琛屾眹嬈俱傚悓鏍風殑錛屼綘涔熼渶瑕佸~鍐欐眹嬈懼崟鐒跺悗浜ょ粰鏌滃憳錛屾煖鍛樿繘琛屼竴浜涚畝鍗曠殑鎵嬬畫澶勭悊灝辮兘澶熺粰浣犲洖鎵с備絾鏄紝浣犳嬁鍒板洖鎵у茍涓嶆剰鍛崇潃閽卞凡緇忔墦鍒頒簡瀵規柟鐨勮處涓娿備簨瀹炰笂錛屼竴鑸眹嬈劇殑鍛ㄦ湡澶ф鏄?4涓皬鏃訛紝濡傛灉浣犺浠ュ瓨閽辯殑妯″紡鏉ユ眹嬈劇殑璇濓紝鎰忓懗鐫浣犻渶瑕佸湪閾惰絳?4涓皬鏃訛紝榪欐樉鐒舵槸涓嶇幇瀹炵殑銆傛墍浠ワ紝鍚屾闈為樆濉濱O鍦ㄥ疄闄呯敓媧諱腑涔熸槸鏈夊畠鐨勬剰涔夌殑銆?/p>
鍐嶆潵璋堣皥寮傛闃誨IO 銆?br>鍦╨inux涓紝甯稿父閫氳繃select/poll鏉ュ疄鐜拌繖縐嶆満鍒躲?/p>
浠ュ浘涓轟緥錛?br>鍜屼箣鍓嶄竴鏍鳳紝搴旂敤紼嬪簭瑕佹墽琛宺ead鎿嶄綔錛屽洜姝よ皟鐢ㄤ竴涓猻ystem call錛岃繖涓猻ystem call琚紶閫掔粰浜唊ernel銆備絾鍦ㄥ簲鐢ㄧ▼搴忚繖杈癸紝瀹冭皟鐢╯ystem call涔嬪悗錛屽茍涓嶇瓑寰卥ernel榪斿洖response錛岃繖涓鐐規槸鍜屽墠闈袱縐嶆満鍒朵笉涓鏍風殑鍦版柟銆傝繖涔熸槸涓轟粈涔堝畠琚О涓哄紓姝ョ殑鍘熷洜銆備絾鏄負浠涔堢О鍏朵負闃誨鍛紵榪欐槸鍥犱負铏界劧搴旂敤紼嬪簭鏄竴涓紓姝ョ殑鏂瑰紡錛屼絾鏄痵elect()鍑芥暟浼氬皢搴旂敤紼嬪簭闃誨浣忥紝涓鐩寸瓑鍒拌繖涓猻ystem call鏈夌粨鏋滆繑鍥炰簡錛屽啀閫氱煡搴旂敤紼嬪簭銆備篃灝辨槸璇達紝“鍦ㄨ繖縐嶆ā鍨嬩腑錛岄厤緗殑鏄潪闃誨 I/O錛岀劧鍚庝嬌鐢ㄩ樆濉?select 緋葷粺璋冪敤鏉ョ‘瀹氫竴涓?I/O 鎻忚堪絎︿綍鏃舵湁鎿嶄綔銆?#8221; 鎵浠ワ紝浠嶪O鎿嶄綔鐨勫疄闄呮晥鏋滄潵鐪嬶紝寮傛闃誨IO鍜岀涓縐嶅悓姝ラ樆濉濱O鏄竴鏍風殑錛屽簲鐢ㄧ▼搴忛兘鏄竴鐩寸瓑鍒癐O鎿嶄綔鎴愬姛涔嬪悗錛堟暟鎹凡緇忚鍐欏叆鎴栬呰鍙栵級錛屾墠寮濮嬭繘琛屼笅闈㈢殑宸ヤ綔銆傚紓姝ラ樆濉濱O鐨勫ソ澶勫湪浜庝竴涓猻elect鍑芥暟鍙互涓哄涓弿榪扮鎻愪緵閫氱煡錛屾彁楂樹簡騫跺彂鎬с?/p>
鍏充簬鎻愰珮騫跺彂鎬ц繖鐐癸紝鎴戜滑榪樹互閾惰涓轟緥璇存槑銆傛瘮濡傝涓涓摱琛屾煖鍙幫紝鐜板湪鏈?0涓漢鎯沖瓨閽便傛寜鐓х幇鍦ㄩ摱琛岀殑鍋氭硶錛屼竴涓釜鎺掗槦銆傜涓涓漢鍏堝~瀛樻鍗曪紝鐒跺悗鎻愪氦錛岀劧鍚庢煖鍛樺鐞嗭紝鐒跺悗緇欏洖鎵э紝鎴愬姛鍚庡啀杞埌涓嬩竴涓漢銆傚ぇ瀹跺簲璇ラ兘鍦ㄩ摱琛屾帓榪囧錛岃繖鏍風殑嫻佺▼鏄緢鐥涜嫤鐨勩傚鏋滄寜鐓у紓姝ラ樆濉炵殑鏈哄埗錛?0涓漢閮藉~濂藉瓨嬈懼崟錛岀劧鍚庨兘鎻愪氦緇欐煖鍙幫紝鎻愪氦瀹屼箣鍚庢墍鏈夌殑10涓漢灝卞湪閾惰澶у巺絳夊緟銆傝繖鏃跺欎細涓撻棬鏈変釜浜猴紝浠栦細浜嗚В瀛樻鍗曞鐞嗙殑鎯呭喌錛屼竴鏃︽湁瀛樻鍗曞鐞嗗畬姣曪紝浠栦細灝嗗洖鎵т氦緇欑浉搴旂殑姝e湪澶у巺絳夊緟鐨勪漢錛岃繖涓嬁鍒板洖鎵х殑浜哄氨鍙互鍘誨共鍏朵粬鐨勪簨鎯呬簡銆傝屽墠闈㈡彁鍒扮殑榪欎釜涓撲漢錛屽氨瀵瑰簲浜巗elect鍑芥暟銆?/p>
鏈鍚庯紝璋堣皥寮傛闈為樆濉濱O 銆?br>榪欎釜姒傚康鐩稿鍓嶉潰涓や釜鍙嶈屾洿瀹規槗鐞嗚В涓浜涖?/p>
濡傚浘鎵紺猴紝搴旂敤紼嬪簭鎻愪氦read璇鋒眰鐨剆ystem call錛岀劧鍚庯紝kernel寮濮嬪鐞嗙浉搴旂殑IO鎿嶄綔錛岃屽悓鏃訛紝搴旂敤紼嬪簭騫朵笉絳塳ernel榪斿洖鍝嶅簲錛屽氨浼氬紑濮嬫墽琛屽叾浠栫殑澶勭悊鎿嶄綔錛堝簲鐢ㄧ▼搴忔病鏈夎IO鎿嶄綔鎵闃誨錛夈傚綋kernel鎵ц瀹屾瘯錛岃繑鍥瀝ead鐨勫搷搴旓紝灝變細浜х敓涓涓俊鍙鋒垨鎵ц涓涓熀浜庣嚎紼嬬殑鍥炶皟鍑芥暟鏉ュ畬鎴愯繖嬈?I/O 澶勭悊榪囩▼銆?/p>
姣斿閾惰瀛橀挶銆傜幇鍦ㄦ煇閾惰鏂板紑閫氫簡涓欏瑰瓨閽變笟鍔°傜敤鎴蜂箣闇瑕佸皢瀛樻鍗曚氦緇欐煖鍙幫紝鐒跺悗鏃犻渶絳夊緟灝卞彲浠ョ寮浜嗐傛煖鍙板姙濂戒互鍚庝細緇欑敤鎴峰彂閫佷竴鏉$煭淇★紝鍛婄煡浜ゆ槗鎴愬姛銆傝繖鏍風敤鎴蜂笉闇瑕佸湪鏌滃彴鍓嶈繘琛岄暱鏃墮棿鐨勭瓑寰咃紝鍚屾椂錛屼篃鑳藉寰楀埌紜垏鐨勬秷鎭煡閬撲氦鏄撳畬鎴愩?/p>
浠庡墠闈㈢殑浠嬬粛涓彲浠ョ湅鍑猴紝鎵璋撶殑鍚屾鍜屽紓姝ワ紝鍦ㄨ繖閲屾寚鐨勬槸application鍜宬ernel涔嬮棿鐨勪氦浜掓柟寮忋傚鏋渁pplication涓嶉渶瑕佺瓑寰?kernel鐨勫洖搴旓紝閭d箞瀹冨氨鏄紓姝ョ殑銆傚鏋渁pplication鎻愪氦瀹孖O璇鋒眰鍚庯紝闇瑕佺瓑寰?#8220;鍥炴墽”錛岄偅涔堝畠灝辨槸鍚屾鐨勩?br>鑰岄樆濉炲拰闈為樆濉烇紝鎸囩殑鏄痑pplication鏄惁絳夊緟IO鎿嶄綔鐨勫畬鎴愩傚鏋渁pplication蹇呴』絳夊埌IO鎿嶄綔瀹為檯瀹屾垚浠ュ悗鍐嶆墽琛屼笅闈㈢殑鎿嶄綔錛岄偅涔堝畠鏄樆濉炵殑銆傚弽涔嬶紝濡傛灉涓嶇瓑寰匢O鎿嶄綔鐨勫畬鎴愬氨寮濮嬫墽琛屽叾瀹冩搷浣滐紝閭d箞瀹冩槸闈為樆濉炵殑銆?/p>
鏈枃鏉ヨ嚜CSDN鍗氬錛岃漿杞借鏍囨槑鍑哄錛?a >http://blog.csdn.net/historyasamirror/archive/2009/06/15/4270633.aspx
]]> 浣跨敤CString鐨勬柟娉?/title> http://m.shnenglu.com/jianlinzhang/archive/2009/07/02/89047.html寮犲緩鏋?/dc:creator>寮犲緩鏋?/author>Thu, 02 Jul 2009 02:58:00 GMT http://m.shnenglu.com/jianlinzhang/archive/2009/07/02/89047.html http://m.shnenglu.com/jianlinzhang/comments/89047.html http://m.shnenglu.com/jianlinzhang/archive/2009/07/02/89047.html#Feedback 0 http://m.shnenglu.com/jianlinzhang/comments/commentRss/89047.html http://m.shnenglu.com/jianlinzhang/services/trackbacks/89047.html #include <string> using namespace std; 浣嗚偗瀹氫笉濡侰String鍔熻兘寮哄ぇ錛屽叾瀹炲湪闈濵FC紼嬪簭涓嬌鐢–String錛屼篃鏄彲浠ョ殑錛屽叿浣撴柟娉曞涓嬶細 涓轟簡浣跨敤CString綾伙紝棣栧厛婧愭枃浠跺繀欏繪槸浠pp緇撳熬鐨勶紝榪欐槸鍥犱負vc榛樿瀵逛笉鍚岀殑鎵╁睍鍚嶉噰鐢ㄤ笉鍚岀殑緙栬瘧鏂規硶鍜岄敊璇鏌ワ紝mfc鐨勬敮鎸佹枃浠禔fx.h鍙湁鐢眂pp涓烘墿灞曞悕鐨勬枃浠跺寘鍚墠鑳藉姝e父緙栬瘧銆傚浜巈xe鍜屽簱瑕侀噰鐢ㄤ笉鍚岀殑鏂瑰紡銆備笅闈㈠垎鍒璁猴細 涓銆佸湪闈瀌ll鎴栬卨ib鐨勫伐紼嬮噷錛屼嬌鐢–String闈炲父瀹規槗錛屽彧瑕佷袱姝ワ細 1銆佸浜庢病鏈夊寘鍚?lt;Windows.h>鐨剆tdafx.h涓紝鍙鍖呭惈浜哸fx.h鍗沖彲錛岃屽浜庡凡緇忓寘鍚簡<windows.h>鐨剆tdafx.h, 涓瀹氶渶瑕佷繚璇乤fx.h鍦╳indows.h涔嬪墠琚寘鍚傚彟澶栫敱浜庨粯璁ょ殑鎺у埗鍙扮▼搴忛噰鐢ㄧ殑鍗曠嚎紼嬭繍琛屽簱錛屾垜浠鎶婂畠鏀規垚澶氱嚎紼嬪簱錛岃繖浜涘伐浣滃彧瑕佸湪stdafx.h涓繘琛屼慨鏀瑰氨鍙互浜嗭紙璇︾粏淇℃伅鍙互鍙傝冨欐嵎鐨?lt;<mfc 娣卞叆嫻呭嚭>>錛夛紝鎴戜嬌鐢ㄧ殑涓涓猻tdafx.h鐨勪緥瀛愬涓嬶紙榪欐槸涓涓粠鍚戝鐢熸垚鐨剋in32浣岹UI鐨勭▼搴忕殑stdafx.h淇敼鐨勶級錛?br> // stdafx銆俬 #if !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_) #define AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers #include <afx.h> // 鍔犲湪榪欓噷 // Windows Header Files: #include <windows.h> // C RunTime Header Files #include <stdlib.h> #include <malloc.h> #include <memory.h> #include <tchar.h> #ifdef _DEBUG #pragma comment(lib, "libcmtd.lib") #else #pragma comment(lib, "libcmt.lib") #endif // Local Header Files #endif // !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_) 榪欐牱灝卞彲浠ュ湪紼嬪簭涓甯鎬嬌鐢–String綾諱簡銆?br> 浜屻佸湪dll鎴栬卨ib鐨勫伐紼嬩腑錛岀敱浜巃fx.h榛樿甯︿簡涓涓狣llMain錛岃嚧浣胯浣跨敤CString綾婚渶瑕佸嚑涓楠ゃ?br> 1銆侀鍏堝拰鎺у埗鍙扮▼搴忎竴鏍鳳紝濡傛灉緙栬瘧鐜璁劇疆浜嗛噰鐢ㄥ崟綰跨▼搴? 瑕佹敼鎴愬綰跨▼搴擄紝榪欎釜鍙互浠庡伐紼嬪睘鎬ч噷榪涜淇敼錛岃緇嗕俊鎭彲浠ュ弬鑰冨欐嵎鐨?lt;<mfc 娣卞叆嫻呭嚭>>. 涓嬮潰緇欏嚭鐨勬槸鎴戝父鐢ㄧ殑鏂瑰紡錛屽彲浠ョ洿鎺ユ妸瀹冨鍒跺埌宸ョ▼閲屼嬌鐢細 #ifdef _DEBUG #pragma comment(lib, "libcmtd.lib") #else #pragma comment(lib, "libcmt.lib") #endif 2銆佸伐紼嬬洰褰曚笅鍒涘緩涓涓狣LLMODUL.CPP鏂囦歡錛屽茍涓旀妸瀹冨姞鍏ュ埌褰撳墠宸ョ▼涓?br> 3銆佹墦寮DLLMODUL.CPP鏂囦歡錛岀紪杈戣繖涓枃浠朵負榪欐牱錛?br> #include "stdafx.h" #ifdef _DEBUG #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif #define new DEBUG_NEW ///////////////////////////////////////////////////////////////////////////// // global data // The following symbol used to force inclusion of this module for _USRDLL #ifdef _X86_ extern "C" { int _afxForceUSRDLL; } #else extern "C" { int __afxForceUSRDLL; } #endif 4銆佹墦寮stdafx.h錛屾妸afx.h鍖呭惈鍦╳indows.h鍓嶉潰銆傜幇鍦ㄥ彲浠ユ甯哥殑浣跨敤CString浜嗐?
]]> 鍏充簬 vs2005 娣誨姞綾繪垨鑰呭彉閲?鍑洪敊闂鐨勮В鍐蟲柟妗?/title> http://m.shnenglu.com/jianlinzhang/archive/2009/05/26/85768.html寮犲緩鏋?/dc:creator>寮犲緩鏋?/author>Tue, 26 May 2009 02:11:00 GMT http://m.shnenglu.com/jianlinzhang/archive/2009/05/26/85768.html http://m.shnenglu.com/jianlinzhang/comments/85768.html http://m.shnenglu.com/jianlinzhang/archive/2009/05/26/85768.html#Feedback 3 http://m.shnenglu.com/jianlinzhang/comments/commentRss/85768.html http://m.shnenglu.com/jianlinzhang/services/trackbacks/85768.html 璇ヨВ鍐蟲柟妗堝涓嬶細 錛?錛変笅杞絭s2005 琛ヤ竵,涓嬭澆閾炬帴涓猴細Microsoft Visual C++ 2005 SP1 Redistributable Package (x86) 錛屽畨瑁呬箣銆傘傘?br>錛?錛変笅杞介渶瑕佷慨鏀規敞鍐岃〃鐨勪竴涓伐紼?涓嬭澆鍦板潃涓猴細http://download.csdn.net/source/1145363 錛岃繍琛屼箣銆傘傘?br>鑷蟲錛岄棶棰樺氨宸茶В鍐籌紒 褰撶劧寮曡搗璇ラ棶棰樼殑涓昏鍘熷洜鏄敱浜嶪E8鐨勪嬌鐢紝濡傛灉浣犺寰椾互涓婃柟娉曟瘮杈冨鏉傦紝鍙洿鎺ュ嵏杞芥帀IE8.銆傘傘?br> 鍦ㄦ錛屾垜瑕佹劅璋?a >http://jiangsheng.spaces.live.com/blog/cns!1BE894DEAF296E0A!878.entry 鏂囩珷鐨勫崥涓匯傘傘傘?
]]> socket 鍚屾 寮傛 闃誨 闈為樆濉?/title> http://m.shnenglu.com/jianlinzhang/archive/2009/05/18/83297.html寮犲緩鏋?/dc:creator>寮犲緩鏋?/author>Mon, 18 May 2009 09:36:00 GMT http://m.shnenglu.com/jianlinzhang/archive/2009/05/18/83297.html http://m.shnenglu.com/jianlinzhang/comments/83297.html http://m.shnenglu.com/jianlinzhang/archive/2009/05/18/83297.html#Feedback 0 http://m.shnenglu.com/jianlinzhang/comments/commentRss/83297.html http://m.shnenglu.com/jianlinzhang/services/trackbacks/83297.html 鍚屾錛氬嚱鏁版病鏈夋墽琛屽畬涓嶈繑鍥烇紝綰跨▼琚寕璧?
闃誨錛氭病鏈夋敹瀹屾暟鎹嚱鏁頒笉榪斿洖錛岀嚎紼嬩篃琚寕璧?/p>
寮傛錛氬嚱鏁扮珛鍗寵繑鍥烇紝閫氳繃浜嬩歡鎴栨槸淇″彿閫氱煡璋冪敤鑰?/p>
闈為樆濉烇細鍑芥暟绔嬪嵆榪斿洖錛岄氳繃select閫氱煡璋冪敤鑰?/p>
榪欐牱鐪嬫潵寮傛鍜岄潪闃誨鏈変粈涔堝尯鍒憿錛?/p>
寮傛=闈為樆濉烇紵
鍚屾鏄湪鎿嶄綔緋葷粺灞傞潰涓婏紝闃誨鏄湪濂楁帴瀛椾笂錛?/p>
Reactor鏄悓姝?Proactor鏄紓姝ワ紵
鍥炵瓟錛?/strong>
鍚屾銆佸紓姝ャ侀樆濉炲拰闈為樆濉炵殑姒傚康
銆銆鍦ㄨ繘琛岀綉緇滅紪紼嬫椂錛屾垜浠父甯歌鍒板悓姝ャ佸紓姝ャ侀樆濉炲拰闈為樆濉炲洓縐嶈皟鐢ㄦ柟寮忋傝繖浜涙柟寮忓郊姝ゆ蹇靛茍涓嶅ソ鐞嗚В銆備笅闈㈡槸鎴戝榪欎簺鏈鐨勭悊瑙c?/p>
鍚屾 銆銆鎵璋撳悓姝ワ紝灝辨槸鍦ㄥ彂鍑轟竴涓姛鑳借皟鐢ㄦ椂錛屽湪娌℃湁寰楀埌緇撴灉涔嬪墠錛岃璋冪敤灝變笉榪斿洖銆傛寜鐓ц繖涓畾涔夛紝鍏跺疄緇濆ぇ澶氭暟鍑芥暟閮芥槸鍚屾璋冪敤錛堜緥濡俿in, isdigit絳夛級銆備絾鏄竴鑸岃█錛屾垜浠湪璇村悓姝ャ佸紓姝ョ殑鏃跺欙紝鐗規寚閭d簺闇瑕佸叾浠栭儴浠跺崗浣滄垨鑰呴渶瑕佷竴瀹氭椂闂村畬鎴愮殑浠誨姟銆傛渶甯歌鐨勪緥瀛愬氨鏄?SendMessage銆傝鍑芥暟鍙戦佷竴涓秷鎭粰鏌愪釜紿楀彛錛屽湪瀵規柟澶勭悊瀹屾秷鎭箣鍓嶏紝榪欎釜鍑芥暟涓嶈繑鍥炪傚綋瀵規柟澶勭悊瀹屾瘯浠ュ悗錛岃鍑芥暟鎵嶆妸娑堟伅澶勭悊鍑芥暟鎵榪斿洖鐨?LRESULT鍊艱繑鍥炵粰璋冪敤鑰呫?/p>
寮傛 銆銆寮傛鐨勬蹇靛拰鍚屾鐩稿銆傚綋涓涓紓姝ヨ繃紼嬭皟鐢ㄥ彂鍑哄悗錛岃皟鐢ㄨ呬笉鑳界珛鍒誨緱鍒扮粨鏋溿傚疄闄呭鐞嗚繖涓皟鐢ㄧ殑閮ㄤ歡鍦ㄥ畬鎴愬悗錛岄氳繃鐘舵併侀氱煡鍜屽洖璋冩潵閫氱煡璋冪敤鑰呫備互 CAsycSocket綾諱負渚嬶紙娉ㄦ剰錛孋Socket浠嶤AsyncSocket媧劇敓錛屼絾鏄搗鍔熻兘宸茬粡鐢卞紓姝ヨ漿鍖栦負鍚屾錛夛紝褰撲竴涓鎴風閫氳繃璋冪敤 Connect鍑芥暟鍙戝嚭涓涓繛鎺ヨ姹傚悗錛岃皟鐢ㄨ呯嚎紼嬬珛鍒誨彲浠ユ湞涓嬭繍琛屻傚綋榪炴帴鐪熸寤虹珛璧鋒潵浠ュ悗錛宻ocket搴曞眰浼氬彂閫佷竴涓秷鎭氱煡璇ュ璞°傝繖閲屾彁鍒版墽琛?閮ㄤ歡鍜岃皟鐢ㄨ呴氳繃涓夌閫斿緞榪斿洖緇撴灉錛氱姸鎬併侀氱煡鍜屽洖璋冦傚彲浠ヤ嬌鐢ㄥ摢涓縐嶄緷璧栦簬鎵ц閮ㄤ歡鐨勫疄鐜幫紝闄ら潪鎵ц閮ㄤ歡鎻愪緵澶氱閫夋嫨錛屽惁鍒欎笉鍙楄皟鐢ㄨ呮帶鍒躲傚鏋滄墽琛岄儴 浠剁敤鐘舵佹潵閫氱煡錛岄偅涔堣皟鐢ㄨ呭氨闇瑕佹瘡闅斾竴瀹氭椂闂存鏌ヤ竴嬈★紝鏁堢巼灝卞緢浣庯紙鏈変簺鍒濆澶氱嚎紼嬬紪紼嬬殑浜猴紝鎬誨枩嬈㈢敤涓涓驚鐜幓媯鏌ユ煇涓彉閲忕殑鍊鹼紝榪欏叾瀹炴槸涓縐嶅緢涓ラ噸 鐨勯敊璇級銆傚鏋滄槸浣跨敤閫氱煡鐨勬柟寮忥紝鏁堢巼鍒欏緢楂橈紝鍥犱負鎵ц閮ㄤ歡鍑犱箮涓嶉渶瑕佸仛棰濆鐨勬搷浣溿傝嚦浜庡洖璋冨嚱鏁幫紝鍏跺疄鍜岄氱煡娌″お澶氬尯鍒?/p>
闃誨 銆銆闃誨璋冪敤鏄寚璋冪敤緇撴灉榪斿洖涔嬪墠錛屽綋鍓嶇嚎紼嬩細琚寕璧楓傚嚱鏁板彧鏈夊湪寰楀埌緇撴灉涔嬪悗鎵嶄細榪斿洖銆傛湁浜轟篃璁鎬細鎶婇樆濉炶皟鐢ㄥ拰鍚屾璋冪敤絳夊悓璧鋒潵錛屽疄闄呬笂浠栨槸涓嶅悓鐨勩傚浜庡悓 姝ヨ皟鐢ㄦ潵璇達紝寰堝鏃跺欏綋鍓嶇嚎紼嬭繕鏄縺媧葷殑錛屽彧鏄粠閫昏緫涓婂綋鍓嶅嚱鏁版病鏈夎繑鍥炶屽凡銆備緥濡傦紝鎴戜滑鍦–Socket涓皟鐢≧eceive鍑芥暟錛屽鏋滅紦鍐插尯涓病鏈夋暟 鎹紝榪欎釜鍑芥暟灝變細涓鐩寸瓑寰咃紝鐩村埌鏈夋暟鎹墠榪斿洖銆傝屾鏃訛紝褰撳墠綰跨▼榪樹細緇х畫澶勭悊鍚勭鍚勬牱鐨勬秷鎭傚鏋滀富紿楀彛鍜岃皟鐢ㄥ嚱鏁板湪鍚屼竴涓嚎紼嬩腑錛岄櫎闈炰綘鍦ㄧ壒孌婄殑鐣岄潰鎿?浣滃嚱鏁頒腑璋冪敤錛屽叾瀹炰富鐣岄潰榪樻槸搴旇鍙互鍒鋒柊銆俿ocket鎺ユ敹鏁版嵁鐨勫彟澶栦竴涓嚱鏁皉ecv鍒欐槸涓涓樆濉炶皟鐢ㄧ殑渚嬪瓙銆傚綋socket宸ヤ綔鍦ㄩ樆濉炴ā寮忕殑鏃跺欙紝 濡傛灉娌℃湁鏁版嵁鐨勬儏鍐典笅璋冪敤璇ュ嚱鏁幫紝鍒欏綋鍓嶇嚎紼嬪氨浼氳鎸傝搗錛岀洿鍒版湁鏁版嵁涓烘銆?/p>
闈為樆濉?/strong> 銆銆闈為樆濉炲拰闃誨鐨勬蹇電浉瀵瑰簲錛屾寚鍦ㄤ笉鑳界珛鍒誨緱鍒扮粨鏋滀箣鍓嶏紝璇ュ嚱鏁頒笉浼氶樆濉炲綋鍓嶇嚎紼嬶紝鑰屼細绔嬪埢榪斿洖銆?/p>
銆銆瀵硅薄鐨勯樆濉炴ā寮忓拰闃誨鍑芥暟璋冪敤 銆銆瀵硅薄鏄惁澶勪簬闃誨妯″紡鍜屽嚱鏁版槸涓嶆槸闃誨璋冪敤鏈夊緢寮虹殑鐩稿叧鎬э紝浣嗘槸騫朵笉鏄竴涓瀵瑰簲鐨勩傞樆濉炲璞′笂鍙互鏈夐潪闃誨鐨勮皟鐢ㄦ柟寮忥紝鎴戜滑鍙互閫氳繃涓瀹氱殑API鍘昏疆璇㈢姸 鎬侊紝鍦ㄩ傚綋鐨勬椂鍊欒皟鐢ㄩ樆濉炲嚱鏁幫紝灝卞彲浠ラ伩鍏嶉樆濉炪傝屽浜庨潪闃誨瀵硅薄錛岃皟鐢ㄧ壒孌婄殑鍑芥暟涔熷彲浠ヨ繘鍏ラ樆濉炶皟鐢ㄣ傚嚱鏁皊elect灝辨槸榪欐牱鐨勪竴涓緥瀛愩?/p>
闃誨閫氫俊
--------------------------------------------------------------------------------
銆銆閫氳繃閲嶅彔閫氫俊鍜岃綆楀湪璁稿緋葷粺鑳芥彁楂樻ц兘銆傜敱涓涓櫤鑳介氫俊鎺у埗鍣ㄨ嚜鍔ㄥ湴鎵ц閫氫俊鐨勭郴緇熸槸鐪熷疄鐨勩傝交錛嶉噸綰跨儲鏄彇寰楄繖縐嶉噸鍙犵殑涓縐嶆満鍒躲傚鑷村ソ鎬ц兘鐨?涓涓彲閫夌殑鏈哄埗鏄嬌鐢ㄩ潪闃誨閫氫俊銆備竴涓樆濉炲彂閫佸紑濮嬭皟鐢ㄥ垵濮嬪寲榪欎釜鍙戦佹搷浣滐紝浣嗕笉瀹屾垚瀹冦傚湪榪欎釜娑堟伅琚粠榪欎釜鍙戦佺紦瀛樻嫹鍑轟互鍓嶏紝榪欎釜鍙戦佸紑濮嬭皟鐢ㄥ皢榪斿洖銆?闇瑕佷竴涓嫭绔嬬殑“鍙戦佸畬鎴?#8221;璋冪敤瀹屾垚榪欎釜閫氫俊錛屼緥濡傦紝媯楠屼粠鍙戦佺紦瀛樻嫹鍑虹殑鏁版嵁銆傜敤閫傚綋鐨勭‖浠訛紝鍦ㄥ彂閫佽鍒濆鍖栧悗鍜屽畠瀹屾垚浠ュ墠錛屾潵鑷彂閫佽呭瓨鍌ㄧ殑鏁版嵁杞崲 鍙互鍜屽湪鍙戦佽呭畬鎴愮殑璁$畻鍚屾椂榪涜銆傜被浼煎湴錛屼竴涓潪闃誨“鎺ユ敹寮濮嬭皟鐢?#8221;鍒濆鍖栬繖涓帴鏀舵搷浣? 浣嗕笉瀹屾垚瀹冦傚湪涓涓秷鎭瀛樺叆榪欎釜鎺ユ敹緙撳瓨浠ュ墠錛岃繖涓皟鐢ㄥ皢榪斿洖銆傞』瑕佷竴涓嫭绔嬬殑“鎺ユ敹瀹屾垚”璋冪敤瀹屾垚榪欎釜鎺ユ敹鎿嶄綔錛屽茍媯楠岃鎺ユ敹鍒拌繖涓帴鏀剁紦瀛樼殑鏁版嵁銆?鐢ㄩ傚綋鐨勭‖浠訛紝鍦ㄦ帴鏀舵搷浣滃垵濮嬪寲鍚庡拰瀹冨畬鎴愪互鍓嶏紝鍒版帴鏀惰呭瓨鍌ㄧ殑鏁版嵁杞崲鍙互鍜岃綆楀悓鏃惰繘琛屻傞潪闃誨鎺ユ敹鐨勪嬌鐢ㄨ櫧鐫淇℃伅杈冩棭鍦板湪鎺ユ敹緙撳瓨浣嶇疆琚彁渚涳紝涔熷彲 浠ラ伩鍏嶇郴緇熺紦瀛樺拰瀛樺偍鍣ㄥ埌瀛樺偍鍣ㄦ嫹璐濄?/p>
銆銆闈為樆濉炲彂閫佸紑濮嬭皟鐢ㄨ兘浣跨敤涓庨樆濉炲彂閫佷竴鏍風殑鍥涚妯″紡: 鏍囧噯, 緙撳瓨, 鍚屾鍜屽噯澶囧ソ妯″紡銆傝繖浜涘叿鏈夊悓鏍風殑鎰忎箟銆傛棤璁轟竴涓尮閰嶆帴鏀舵槸鍚﹀凡鐧誨叆錛岃兘寮濮嬮櫎“鍑嗗濂?#8221;浠ュ鐨勬墍鏈夋ā寮忕殑鍙戦侊紱鍙涓涓尮閰嶆帴鏀跺凡鐧誨叆錛屽氨鑳藉紑濮嬩竴涓潪 闃誨“鍑嗗濂?#8221;鍙戦併傚湪鎵鏈夋儏鍐典笅錛屽彂閫佸紑濮嬭皟鐢ㄦ槸灞閮ㄧ殑錛氭棤璁哄叾瀹冭繘紼嬬殑鐘舵佸浣曪紝瀹冪珛鍒昏繑鍥炪傚鏋滆繖涓皟鐢ㄤ嬌寰椾竴浜涚郴緇熻祫婧愮敤瀹岋紝閭d箞瀹冨皢澶辮觸騫惰繑鍥?涓涓敊璇唬鐮併傞珮璐ㄩ噺鐨凪PI瀹炵幇搴斾繚璇佽繖縐嶆儏鍐靛彧鍦?#8220;鐥呮?#8221;鏃跺彂鐢熴傚嵆錛屼竴涓狹PI瀹炵幇灝嗚兘鏀寔澶ф暟閲忔寕璧烽潪闃誨鎿嶄綔銆傘銆
銆銆褰撴暟鎹凡琚粠鍙戦佺紦瀛樻嫹鍑烘椂錛岃繖涓彂閫佸畬鎴愯皟鐢ㄨ繑鍥炪傚畠鍙互甯︽湁闄勫姞鐨勬剰涔夛紝榪欏彇鍐充簬鍙戦佹ā寮忋傘
銆銆濡傛灉鍙戦佹ā寮忔槸“鍚屾鐨?#8221;錛岄偅涔堝彧鏈変竴涓尮閰嶆帴鏀跺凡寮濮嬭繖涓彂閫佹墠鑳藉畬鎴愩傚嵆錛屼竴涓帴鏀跺凡琚櫥鍏ワ紝騫跺凡鍜岃繖涓彂閫佸尮閰嶃傝繖鏃訛紝榪欎釜鍙戦佸畬鎴愯皟鐢ㄦ槸闈?灞閮ㄧ殑銆傛敞鎰忥紝鍦ㄦ帴鏀跺畬鎴愯皟鐢ㄥ彂鐢熶互鍓嶏紝濡傛灉涓涓悓姝ャ侀潪闃誨鍙戦佸拰涓涓潪闃誨鎺ユ敹鍖歸厤, 瀹冨彲浠ュ畬鎴愩?鍙戦佽呬竴“鐭ラ亾”杞崲灝嗙粨鏉燂紝瀹冨氨鑳藉畬鎴愶紝浣嗗湪鎺ユ敹鑰?#8220;鐭ラ亾”杞崲灝嗙粨鏉熶互鍓?銆傘銆
銆銆濡傛灉鍙戦佹ā寮忔槸“緙撳瓨”錛屽茍娌℃湁鎸傝搗鎺ユ敹錛岄偅涔堟秷鎭繀欏昏緙撳瓨銆傝繖鏃訛紝鍙戦佸畬鎴愯皟鐢ㄦ槸灞閮ㄧ殑錛岃屼笖鏃犺涓涓尮閰嶆帴鏀剁殑鐘舵佸浣曪紝瀹冨繀欏繪垚鍔熴傘銆
銆銆濡傛灉鍙戦佹ā寮忔槸鏍囧噯鐨勶紝鍚屾椂榪欎釜娑堟伅琚紦瀛橈紝閭d箞鍦ㄤ竴涓尮閰嶆帴鏀跺彂鐢熶互鍓嶏紝鍙戦佺粨鏉熻皟鐢ㄥ彲浠ヨ繑鍥炪傚彟涓鏂歸潰錛屽彂閫佸畬鎴愮洿鍒頒竴涓尮閰嶆帴鏀跺彂鐢熸墠鍙互瀹屾垚錛屽茍涓旇繖涓秷鎭凡琚嫹鍒版帴鏀剁紦瀛樸傘銆
銆銆闈為樆濉炲彂閫佽兘琚敤闃誨鎺ユ敹鍖歸厤錛屽弽榪囨潵涔熷彲浠ャ?/p>
銆銆緇欑敤鎴風殑寤鴻. 涓涓彂閫佹搷浣滅殑瀹屾垚, 瀵逛簬鏍囧噯妯″紡鍙互琚歡榪? 瀵逛簬鍚岄儴妯″紡蹇呴』寤惰繜, 鐩村埌涓涓尮閰嶆帴鏀剁櫥鍏ャ傝繖涓ょ鎯呭喌涓嬮潪闃誨鍙戦佺殑浣跨敤鍏佽鍙戦佽呮彁鍓嶄簬鎺ユ敹鑰呰繘琛岋紝浠ヤ究鍦ㄤ袱榪涚▼鐨勯熷害鏂歸潰錛岃綆楁洿瀹瑰繊娉㈠姩銆傘銆
銆銆緙撳瓨鍜屽噯澶囧ソ妯″紡涓殑闈為樆濉炲彂閫佹湁涓涓洿鏈夐檺鐨勫獎鍝嶃備竴鍙兘涓涓潪闃誨鍙戦佸皢榪斿洖錛岃屼竴涓樆濉炲彂閫佸皢鍦ㄦ暟鎹浠庡彂閫佽呭瓨鍌ㄦ嫹鍑哄悗榪斿洖銆傚彧瑕佸湪鏁版嵁鎷瘋礉鑳藉拰璁$畻鍚屾椂鐨勬儏鍐典笅錛岄潪闃誨鍙戦佺殑浣跨敤鏈変紭鐐廣?/p>
銆銆娑堟伅鍙戦佹ā寮忛殣鍚潃鐢卞彂閫佽呭垵濮嬪寲閫氫俊銆傚綋鍙戦佽呭垵濮嬪寲閫氫俊(鏁版嵁琚洿鎺ョЩ鍒版帴鏀剁紦瀛? 騫朵笉瑕佹眰鎺掗槦涓涓寕璧峰彂閫佽姹? 鏃訛紝濡傛灉涓涓帴鏀跺凡鐧誨叆錛岃繖涓氫俊涓鑸皢鏈夎緝浣庣殑棰濆璐熸媴銆備絾鏄紝鍙湪鍖歸厤鍙戦佸凡鍙戠敓鍚庯紝涓涓帴鏀舵搷浣滆兘瀹屾垚銆傚綋闈為樆濉炴帴鏀剁瓑寰呭彂閫佹椂錛屾病鏈夐樆濉炴帴鏀訛紝瀹?鐨勪嬌鐢ㄥ厑璁稿緱鍒拌緝浣庣殑閫氫俊棰濆璐熸媴銆傦紙緇欑敤鎴風殑寤鴻緇撴潫錛夈?/p>
鍘熸枃鍑哄錛?a >http://www.kuqin.com/networkprog/20090221/35947.html
]]>OpenMP騫惰紼嬪簭璁捐 http://m.shnenglu.com/jianlinzhang/archive/2009/05/14/82906.html寮犲緩鏋?/dc:creator>寮犲緩鏋?/author>Thu, 14 May 2009 01:11:00 GMT http://m.shnenglu.com/jianlinzhang/archive/2009/05/14/82906.html http://m.shnenglu.com/jianlinzhang/comments/82906.html http://m.shnenglu.com/jianlinzhang/archive/2009/05/14/82906.html#Feedback 0 http://m.shnenglu.com/jianlinzhang/comments/commentRss/82906.html http://m.shnenglu.com/jianlinzhang/services/trackbacks/82906.html
OpenMP鐨勬寚浠ゆ湁浠ヤ笅涓浜涳細
parallel 錛岀敤鍦ㄤ竴涓唬鐮佹涔嬪墠錛岃〃紺鴻繖孌典唬鐮佸皢琚涓嚎紼嬪茍琛屾墽琛?/div>
for 錛岀敤浜巉or寰幆涔嬪墠錛屽皢寰幆鍒嗛厤鍒板涓嚎紼嬩腑騫惰鎵ц錛屽繀欏諱繚璇佹瘡嬈″驚鐜箣闂存棤鐩稿叧鎬с?/div>
parallel for 錛?parallel 鍜?for璇彞鐨勭粨鍚堬紝涔熸槸鐢ㄥ湪涓涓猣or寰幆涔嬪墠錛岃〃紺篺or寰幆鐨勪唬鐮佸皢琚涓嚎紼嬪茍琛屾墽琛屻?/div>
sections 錛岀敤鍦ㄥ彲鑳戒細琚茍琛屾墽琛岀殑浠g爜孌典箣鍓?/div>
parallel sections 錛宲arallel鍜宻ections涓や釜璇彞鐨勭粨鍚?/div>
critical 錛岀敤鍦ㄤ竴孌典唬鐮佷復鐣屽尯涔嬪墠
single 錛岀敤鍦ㄤ竴孌靛彧琚崟涓嚎紼嬫墽琛岀殑浠g爜孌典箣鍓嶏紝琛ㄧず鍚庨潰鐨勪唬鐮佹灝嗚鍗曠嚎紼嬫墽琛屻?/div>
flush 錛?/div>
barrier 錛岀敤浜庡茍琛屽尯鍐呬唬鐮佺殑綰跨▼鍚屾錛屾墍鏈夌嚎紼嬫墽琛屽埌barrier鏃惰鍋滄錛岀洿鍒版墍鏈夌嚎紼嬮兘鎵ц鍒癰arrier鏃舵墠緇х畫寰涓嬫墽琛屻?/div>
atomic 錛岀敤浜庢寚瀹氫竴鍧楀唴瀛樺尯鍩熻鍒跺姩鏇存柊
master 錛岀敤浜庢寚瀹氫竴孌典唬鐮佸潡鐢變富綰跨▼鎵ц
ordered 錛?鐢ㄤ簬鎸囧畾騫惰鍖哄煙鐨勫驚鐜寜欏哄簭鎵ц
threadprivate , 鐢ㄤ簬鎸囧畾涓涓彉閲忔槸綰跨▼縐佹湁鐨勩?/div>
OpenMP闄や笂榪版寚浠ゅ錛岃繕鏈変竴浜涘簱鍑芥暟錛屼笅闈㈠垪鍑哄嚑涓父鐢ㄧ殑搴撳嚱鏁幫細
omp_get_num_procs , 榪斿洖榪愯鏈嚎紼嬬殑澶氬鐞嗘満鐨勫鐞嗗櫒涓暟銆?/div>
omp_get_num_threads , 榪斿洖褰撳墠騫惰鍖哄煙涓殑媧誨姩綰跨▼涓暟銆?/div>
omp_get_thread_num , 榪斿洖綰跨▼鍙?/div>
omp_set_num_threads , 璁劇疆騫惰鎵ц浠g爜鏃剁殑綰跨▼涓暟
omp_init_lock , 鍒濆鍖栦竴涓畝鍗曢攣
omp_set_lock 錛?涓婇攣鎿嶄綔
omp_unset_lock 錛?瑙i攣鎿嶄綔錛岃鍜宱mp_set_lock鍑芥暟閰嶅浣跨敤銆?/div>
omp_destroy_lock 錛?omp_init_lock鍑芥暟鐨勯厤瀵規搷浣滃嚱鏁幫紝鍏抽棴涓涓攣
OpenMP鐨勫瓙鍙ユ湁浠ヤ笅涓浜?/div>
private, 鎸囧畾姣忎釜綰跨▼閮芥湁瀹冭嚜宸辯殑鍙橀噺縐佹湁鍓湰銆?/span>
firstprivate 錛?/span> 鎸囧畾姣忎釜綰跨▼閮芥湁瀹冭嚜宸辯殑鍙橀噺縐佹湁鍓湰錛屽茍涓斿彉閲忚琚戶鎵夸富綰跨▼涓殑鍒濆箋?/span>
lastprivate 錛?/span> 涓昏鏄敤鏉ユ寚瀹氬皢綰跨▼涓殑縐佹湁鍙橀噺鐨勫煎湪騫惰澶勭悊緇撴潫鍚庡鍒跺洖涓葷嚎紼嬩腑鐨勫搴斿彉閲忋?/span>
reduce 錛?/span> 鐢ㄦ潵鎸囧畾涓涓垨澶氫釜鍙橀噺鏄鏈夌殑錛屽茍涓斿湪騫惰澶勭悊緇撴潫鍚庤繖浜涘彉閲忚鎵ц鎸囧畾鐨勮繍綆椼?/span>
nowait 錛?/span> 蹇界暐鎸囧畾涓殫鍚殑絳夊緟
num_threads 錛?/span> 鎸囧畾綰跨▼鐨勪釜鏁?/span>
schedule 錛?/span> 鎸囧畾濡備綍璋冨害 for 寰幆榪唬
shared 錛?/span> 鎸囧畾涓涓垨澶氫釜鍙橀噺涓哄涓嚎紼嬮棿鐨勫叡浜彉閲?/span>
ordered 錛?/span> 鐢ㄦ潵鎸囧畾 for 寰幆鐨勬墽琛岃鎸夐『搴忔墽琛?/span>
copyprivate 錛?/span> 鐢ㄤ簬 single 鎸囦護涓殑鎸囧畾鍙橀噺涓哄涓嚎紼嬬殑鍏變韓鍙橀噺
copyin 錛?/span> 鐢ㄦ潵鎸囧畾涓涓?/span>threadprivate 鐨勫彉閲忕殑鍊艱鐢ㄤ富綰跨▼鐨勫艱繘琛屽垵濮嬪寲銆?/span>
default 錛?/span> 鐢ㄦ潵鎸囧畾騫惰澶勭悊鍖哄煙鍐呯殑鍙橀噺鐨勪嬌鐢ㄦ柟寮忥紝緙虹渷鏄?/span>shared
鏂囩珷鍑哄錛?br>
http://blog.csdn.net/drzhouweiming/archive/2006/08/28/1131537.aspx http://blog.csdn.net/drzhouweiming/archive/2006/09/04/1175848.aspx
]]>
office 2007姝g増楠岃瘉 http://m.shnenglu.com/jianlinzhang/archive/2009/05/11/82532.html寮犲緩鏋?/dc:creator>寮犲緩鏋?/author>Mon, 11 May 2009 01:23:00 GMT http://m.shnenglu.com/jianlinzhang/archive/2009/05/11/82532.html http://m.shnenglu.com/jianlinzhang/comments/82532.html http://m.shnenglu.com/jianlinzhang/archive/2009/05/11/82532.html#Feedback 7 http://m.shnenglu.com/jianlinzhang/comments/commentRss/82532.html http://m.shnenglu.com/jianlinzhang/services/trackbacks/82532.html Keygen: 鐐瑰嚮涓嬭澆姝ゆ枃浠?/font> VBQF2-6K94C-KCT26-R4XQF-C2QQ8 GM26K-7MYV2-338DJ-4DKMG-DTJBJ CTKXX-M97FT-89PW2-DHKD3-74MYJ(Enterprise瀵嗛挜,2009-03-25 10:29:53嫻嬭瘯閫氳繃楠岃瘉) 閲嶆柊杈撳叆搴忓垪鍙風殑鏂規硶:HKEY_LOCAL_MACHINE\Software\Microsoft\Office\12.0\Registration\{90120000-0030-0000-0000-0000000FF1CE},鍒犻櫎瀛愰敭DigitalProductID,ProductName鍙奝roductID.閲嶆柊鎵撳紑Office灝變細鎻愮ず杈撳叆搴忓垪鍙? 宸茬粡瀹夎Office2007鐨勭洿鎺ヨ繘琛屼互涓嬫楠? 2:鎵撳紑寰蔣姝g増楠岃瘉鐨勭綉欏?http://www.microsoft.com/genuine/default.aspx?displaylang=zh-cn 3:楠岃瘉office2007,瀹夎楠岃瘉鎺т歡,楠岃瘉鏄劇ず澶辮觸! 4:鐢ㄩ檮浠跺唴OGACheckControl.dll鏂囦歡:鐗堟湰鍙蜂負:1.7.105.14,鏇挎崲windows\system32\ 鐩綍涓嬪悓鍚嶆枃浠躲?br>灝哋GACheckControl.dll鏂囦歡澶嶅埗綺樿創鍒皐indows\system32\ 鐩綍涓嬪嵆鍙浛鎹?64浣嶇郴緇熶負system64\鐩綍涓? 娉ㄦ剰:OGACheckControl.dll鏂囦歡鐨勭増鏈彿涓庣郴緇焪indows\system32\涓嬪悓鍚嶆枃浠剁増鏈彿涓鑷?br>Dll涓嬭澆: 鐐瑰嚮涓嬭澆姝ゆ枃浠?/font> 5:鍐嶆楠岃瘉office2007,閫氳繃寰蔣鐨勬鐗堥獙璇? 娉ㄦ剰:2008騫?0鏈?0鏃ュ井杞洿鏂癘GACheckControl.dll鏂囦歡,鏈鏂扮増鏈彿涓?1.7.105.14,鍦ㄦ湭鏇挎崲OGACheckControl.dll鏂囦歡涓嶈兘閫氳繃姝g増楠岃瘉鍓嶄笉瑕佹墦寮浠諱綍office2007緇勪歡,浠ュ厤鍑虹幇"鏄熸槦"璀﹀憡! 鐗堟湰鍙蜂負"1.7.111.0"鐨凮GACheckControl.dll鏂囦歡: 鐐瑰嚮涓嬭澆姝ゆ枃浠?/font> 宸茬粡涓嶅垢涓嫑鏈?鏄熸槦"璀﹀憡鐨?璇風敤闄勪歡涓璒GA鍗歌澆宸ュ叿,瑙e帇鍚庣偣榧犳爣鍙抽敭涓嵏杞?鐩存帴鐐瑰嚮涓嶈兘鍗歌澆,鍗歌澆OGACheckControl.dll鏂囦歡,閲嶅惎璁$畻鏈?鏇存崲office瀹夎搴忓垪鍙?鐢ㄩ檮浠朵腑OGACheckControl.dll閲嶆柊鏇挎崲緋葷粺windows\system32\ 涓嬪悓鍚嶆枃浠?鍐嶆縺媧籵ffice2007. 鏄熸槦鍗歌澆: 鐐瑰嚮涓嬭澆姝ゆ枃浠?/font> 鎴栬呭共鑴嗙粨鏉熸帀鏄熸槦騫舵浛鎹㈡帀鏄熸槦紼嬪簭.鍙敤涓嬮潰鐨勬壒澶勭悊鏂囦歡. 鐐瑰嚮涓嬭澆姝ゆ枃浠?/font> Office涓嬭澆(鎺ㄨ崘榪呴浄): 浼佷笟鐗?ftp://ribbitar.3322.org/Soft/MicrosoftOfficeEnterprise2007.iso 涓撲笟鐗?ftp://ribbitar.3322.org/Soft/MicrosoftOfficeProfessionalPlus2007.iso 杞澆浜庯細http://1vr.cn/article.asp?id=411
]]> char* String CString姣旇緝 http://m.shnenglu.com/jianlinzhang/archive/2009/05/06/82015.html寮犲緩鏋?/dc:creator>寮犲緩鏋?/author>Wed, 06 May 2009 02:14:00 GMT http://m.shnenglu.com/jianlinzhang/archive/2009/05/06/82015.html http://m.shnenglu.com/jianlinzhang/comments/82015.html http://m.shnenglu.com/jianlinzhang/archive/2009/05/06/82015.html#Feedback 0 http://m.shnenglu.com/jianlinzhang/comments/commentRss/82015.html http://m.shnenglu.com/jianlinzhang/services/trackbacks/82015.html CString/string 鍖哄埆鍙婂叾杞寲
鍒╃敤MFC榪涜緙栫▼鏃訛紝鎴戜滑浠庡璇濇涓埄鐢℅etWindowText寰楀埌鐨勫瓧絎︿覆鏄疌String綾誨瀷錛孋String鏄睘浜嶮FC鐨勭被銆傝屼竴浜涙爣鍑咰/C++搴撳嚱鏁版槸涓嶈兘鐩存帴瀵笴String綾誨瀷榪涜鎿嶄綔鐨勶紝鎵浠ユ垜浠粡甯擱亣鍒板皢CString綾誨瀷杞寲char*絳夌瓑鍏朵粬鏁版嵁綾誨瀷鐨勬儏鍐點傝繖閲屾葷粨澶囧繕浜庢錛?/span>
棣栧厛瑕佹槑紜紝鏍囧噯C涓槸涓嶅瓨鍦╯tring綾誨瀷鐨勶紝string鏄爣鍑咰++鎵╁厖瀛楃涓叉搷浣滅殑涓涓被銆備絾鏄垜浠煡閬撴爣鍑咰涓湁string.h榪欎釜澶存枃浠訛紝榪欓噷瑕佸尯鍒嗘竻妤氾紝姝tring闈炲郊string銆俿tring.h榪欎釜澶存枃浠朵腑瀹氫箟浜嗕竴浜涙垜浠粡甯哥敤鍒扮殑鎿嶄綔瀛楃涓茬殑鍑芥暟錛屽錛歴trcpy銆乻trcat銆乻trcmp絳夌瓑錛屼絾鏄繖浜涘嚱鏁扮殑鎿嶄綔瀵硅薄閮芥槸char*鎸囧悜鐨勫瓧絎︿覆銆?鑰孋++鐨剆tring綾繪搷浣滃璞℃槸string綾誨瀷瀛楃涓詫紝璇ョ被閲嶈浜嗕竴浜涜繍綆楃錛屾坊鍔犱簡涓浜涘瓧絎︿覆鎿嶄綔鎴愬憳鍑芥暟錛屼嬌寰楁搷浣滃瓧絎︿覆鏇村姞鏂逛究銆傛湁鐨勬椂鍊欐垜浠灝唖tring涓插拰char*涓查厤鍚堜嬌鐢紝鎵浠ヤ篃浼氭秹鍙婂埌榪欎袱涓被鍨嬬殑杞寲闂銆?br> 1.CString鍜宻tring鐨勮漿鍖?/strong>
string str = " ksarea " ; CString cstr ( str . c_str ()) ; // 鎴栬匔String cstr(str.data());鍒濆鍖栨椂鎵嶈 cstr = str . c_str () ; 鎴栬?/span>cstr = str . data () ; str = cstr . GetBuffer ( 0 ) ; //CString -> string cstr . format ( " %s " , str . c_str ()) ; //string->CString cstr . format ( " %s " , str . data ()) ; //string->CString str = LPCSTR ( cstr ) ; //CString->string /*c_str() 鍜宒ata()鍖哄埆鏄細鍓嶈呰繑鍥炲甫'\0'鐨勫瓧絎︿覆錛屽悗鑰呭垯榪斿洖涓嶅甫'\0'鐨勫瓧絎︿覆*/
2.CString 鍜宨nt鐨勮漿鎹?/span>
inti = 123 ; CString str ; str . format ( " %d " , i ) ; //int->CString 鍏朵粬鐨勫熀鏈被鍨嬭漿鍖栫被浼?/span>i = atoi ( str ) ; //CString->int 榪樻湁(atof,atol)
3.char* 鍜孋String鐨勮漿鎹?/span>
CString cstr = " ksarea " ; char* ptemp = cstr . getbuffer ( 0 ) ; char* str ; strcpy ( str , ptemp ) ; //CString->char* cstr . releasebuffer ( - 1 ) ; char* str = " lovesha " ; CString cstr = str ; //char*->CString string 綾誨瀷涓嶈兘鐩存帴璧嬪肩粰CString
鑷充簬int涓巉loat銆乻tring涓巆har*涔嬮棿鐨勮漿鍖栧彲浠ヤ嬌鐢ㄥ己鍒惰漿鍖栵紝鎴栬呮爣鍑嗗簱鍑芥暟榪涜銆傚浜嶤String涓庡叾浠栫被鍨嬬殑杞寲鏂規硶寰堝錛屼絾鍏跺疄閮芥畩閫斿悓褰掞紝鏈濈潃涓涓柟鍚戝嵆灝嗙被鍨嬮鍏堣漿鍖栦負char*綾誨瀷錛屽洜涓篶har*鏄笉鍚岀被鍨嬩箣闂寸殑妗ユ銆傚緱鍒癱har*綾誨瀷錛岃漿鍖栦負鍏朵粬綾誨瀷灝遍潪甯稿鏄撲簡銆?/span>
涓昏鏈変互涓嬫枃绔狅細
http://blog.csdn.net/bitxinhai/archive/2008/04/14/2292014.aspx http://www.vczx.com/article/show.php?id=845http://www.vczx.com/article/show.php?id=846
]]>
鐮磋Вqq鐨勪竴緋誨垪闂 http://m.shnenglu.com/jianlinzhang/archive/2009/05/04/81834.html寮犲緩鏋?/dc:creator>寮犲緩鏋?/author>Mon, 04 May 2009 08:15:00 GMT http://m.shnenglu.com/jianlinzhang/archive/2009/05/04/81834.html http://m.shnenglu.com/jianlinzhang/comments/81834.html http://m.shnenglu.com/jianlinzhang/archive/2009/05/04/81834.html#Feedback 0 http://m.shnenglu.com/jianlinzhang/comments/commentRss/81834.html http://m.shnenglu.com/jianlinzhang/services/trackbacks/81834.html 瑕佺湅璁塊棶鍙楅檺鐨凲Q絀洪棿寰堢畝鍗曞晩,鐢ㄦ墜宸? 鍦ㄥ湴鍧鏍忛噷杈撳叆 http://qqxoo.com/main.html?qqid= 80224567 榪欐牱灝卞彲鑳界湅瀵規柟鐨勭┖闂? http://qqshow-user.tencent.com/80224567 /11/00 鐪婱M鐨凲Q緇? http://shuqian.qq.com/80224567 / QQ 涔︾ http://h.qbar.qq.com/80224567 榪欎釜鏄湅濂圭殑Q鍚? http://shop.paipai.com/80224567 鐪婱M鐨勬媿鎷? http://wenwen.soso.com/z/ShowUser.e?sp=80224567 榪欎釜鏄粈涔堝憿錛岄棶闂? http://images.5d6d.net/dz61/smilies/default/mad.gif[/img]Q]http://wpa.qq.com/pa?p=1Q 鍙?4 榪欎釜鏄煡鐪嬪ソ鍙嬪湪涓嶅湪灝辯湅榪欎釜浜?錛孧M鏄笉鏄湪綰? 鐢ㄦ墜宸ョ殑鏄緢綆鍗?涓嶄俊灝辮瘯璇?鍙嶆涔熷氨涓鍒嗛挓 PS: 綰㈣壊閮ㄥ垎鏀規垚浣犳兂鐨凲Q灝卞彲浠ヤ簡 鍘熷笘鏉ヨ嚜錛?a >http://qzone.qq.com/blog/80224567-1239195902
]]> 青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
日韩视频在线观看免费 |
亚洲欧美激情四射在线日 |
99国产成+人+综合+亚洲欧美 |
国产精品成人一区二区三区夜夜夜 |
亚洲欧美中日韩 |
亚洲一区二区成人 |
亚洲专区一区二区三区 |
亚洲午夜91 |
亚洲欧美久久久 |
亚洲永久在线观看 |
午夜一区不卡 |
亚洲欧美日韩中文在线制服 |
国产精品久久久久久久午夜片 |
国产精品国产精品 |
国产视频观看一区 |
亚洲国产欧美一区 |
亚洲午夜精品一区二区 |
亚洲一级电影 |
模特精品在线 |
99视频精品全国免费 |
国产精品99久久久久久久久 |
久久精品国产久精国产一老狼 |
久久全球大尺度高清视频 |
欧美精品一区二区三区蜜桃 |
国产精品视频专区 |
亚洲第一在线综合网站 |
亚洲一区国产精品 |
亚洲高清在线精品 |
亚洲精品欧美精品 |
欧美激情成人在线 |
韩国在线视频一区 |
亚洲综合欧美 |
亚洲欧洲av一区二区 |
午夜精品久久 |
国产精品一区一区三区 |
亚洲视频中文 |
亚洲精品日韩在线 |
免费在线一区二区 |
亚洲精品在线视频观看 |
久久国产日韩 |
欧美专区在线 |
●精品国产综合乱码久久久久 |
香蕉av777xxx色综合一区 |
亚洲视频第一页 |
国产精品久久一区二区三区 |
亚洲激情小视频 |
影音先锋另类 |
免费精品视频 |
午夜精品视频在线观看 |
一区二区三区视频免费在线观看 |
欧美国产日韩视频 |
宅男精品导航 |
亚洲欧美一区二区三区久久 |
在线日韩视频 |
亚洲视频久久 |
韩日视频一区 |
一本色道久久综合狠狠躁的推荐 |
国产欧美日本 |
欧美国产欧美亚洲国产日韩mv天天看完整
|
韩国成人理伦片免费播放 |
久久久久久久久久久久久女国产乱
|
国产亚洲精品7777 |
久久全国免费视频 |
欧美调教视频 |
欧美激情亚洲自拍 |
国产精品成人观看视频免费 |
久久婷婷蜜乳一本欲蜜臀 |
欧美日韩精品一区二区三区四区 |
亚洲欧美久久久 |
欧美黄色一区二区 |
伊人久久大香线蕉综合热线 |
久久精品论坛 |
国产精品av久久久久久麻豆网 |
久久精品在线播放 |
国产一区二区三区久久 |
亚洲日本va午夜在线电影 |
国产欧美一区二区色老头 |
91久久综合亚洲鲁鲁五月天 |
国产精品每日更新 |
亚洲视频在线观看 |
久久精品国产亚洲一区二区三区 |
麻豆成人91精品二区三区 |
免费在线看成人av |
最新国产精品拍自在线播放 |
久久久精品国产一区二区三区 |
美女视频黄a大片欧美 |
又紧又大又爽精品一区二区 |
老司机精品视频网站 |
久久综合伊人 |
一本一本久久a久久精品牛牛影视 |
欧美中文字幕在线视频 |
老司机免费视频久久 |
亚洲精品九九 |
国产亚洲精品aa |
蜜桃久久av一区 |
在线亚洲观看 |
久久久天天操 |
亚洲一区二区三区视频 |
国产日韩一区二区三区在线播放
|
久久久久久色 |
最新国产成人在线观看 |
午夜欧美理论片 |
91久久精品一区二区三区 |
欧美日韩亚洲国产精品 |
亚洲一区二区三区四区五区午夜
|
国产精品久久久一区二区 |
欧美在线观看视频一区二区三区 |
久久久一区二区三区 |
亚洲网站在线观看 |
av成人激情 |
在线观看亚洲精品 |
国模一区二区三区 |
国产私拍一区 |
国产精品午夜av在线 |
欧美经典一区二区 |
欧美日韩国产免费观看 |
欧美绝品在线观看成人午夜影视 |
香蕉免费一区二区三区在线观看 |
99精品热视频 |
一区二区三区精品国产 |
亚洲欧洲精品一区二区 |
欧美h视频在线 |
欧美国产日韩xxxxx |
亚洲精选视频免费看 |
亚洲天堂成人 |
香蕉成人久久 |
久久九九精品 |
久久美女性网 |
欧美91视频 |
欧美区一区二区三区 |
欧美日韩一区在线 |
国产欧美精品一区aⅴ影院 |
国产精品中文字幕欧美 |
国产精品试看 |
好吊妞这里只有精品 |
亚洲欧洲中文日韩久久av乱码 |
亚洲精品国产系列 |
亚洲一二三四久久 |
快播亚洲色图 |
艳女tv在线观看国产一区 |
久久精品女人 |
欧美日韩福利 |
亚洲欧洲av一区二区 |
欧美极品aⅴ影院 |
国语自产偷拍精品视频偷
|
国产亚洲成av人在线观看导航 |
国产伦精品一区二区三区在线观看
|
一区二区三区黄色 |
欧美另类变人与禽xxxxx |
国产精品影院在线观看 |
一本一本a久久 |
亚洲黄色在线观看 |
欧美插天视频在线播放 |
亚洲第一成人在线 |
久久久亚洲国产美女国产盗摄 |
亚洲制服av |
国产一区欧美日韩 |
久久麻豆一区二区 |
久久精品视频网 |
在线看国产一区 |
欧美激情一区在线 |
欧美日韩国产首页在线观看 |
日韩亚洲欧美精品 |
亚洲天堂激情 |
国产日韩在线看 |
欧美国产成人在线 |
欧美激情中文字幕在线 |
午夜精品久久久久久久久 |
欧美一区二区私人影院日本 |
精品福利免费观看 |
亚洲日本aⅴ片在线观看香蕉 |
欧美日韩国产在线一区 |
欧美在线观看视频在线 |
久久久精品五月天 |
在线视频一区二区 |
久久久久久久性 |
午夜精品亚洲 |
欧美成人在线影院 |
午夜视频在线观看一区 |
久久躁日日躁aaaaxxxx |
欧美精品综合 |
久久久久91 |
国产女主播在线一区二区 |
亚洲激情另类 |
在线观看三级视频欧美 |
亚洲欧美日韩高清 |
亚洲视频在线一区观看 |
久久久久久伊人 |
久久av一区 |
国产精品自拍视频 |
一区二区冒白浆视频 |
亚洲精品激情 |
欧美成人国产va精品日本一级 |
久久久久久久久久久久久久一区 |
国产精品大片免费观看 |
亚洲国产精品久久人人爱蜜臀 |
黄色一区三区 |
久久久久久97三级 |
另类av一区二区 |
亚洲第一天堂无码专区 |