2025ÄêcÓïÑÔforkº¯ÊýÍ·Îļþ£¨2025ÄêforµÄÍ·Îļþ£©
cÓïÑÔÔõô¸Ä±ä±àÒë´°¿Ú´óС°¡
ÔÚWindowÏ¿ÉÒÔʹÓà system£¨mode con cols=30 lines=20£© ÃüÁîÉèÖô°Ìå´óС¡£
ÓÃdebug·½Ê½±àÒë³öÀ´µÄ´óС£º½ü40k£¬Ì«´óÁË£¬¸Ä³Érelease·½Ê½£¬»¹ÓÐ9k£¬¿´À´µÃÓÅ»¯Ò»Ï¡£
ÓÃÊó±êµ÷Õû¸÷´°¿Ú´óС£¬½«Êä³ö´°¿ÚÒÆµ½´°¿Ú×ó±ß¡£Visual Studio°üº¬windows.hºÍtchar.hÍ·Îļþ£¬Ê¹ÓÃOutputDebugStringº¯ÊýÊä³öµ÷ÊÔÐÅÏ¢£¬ÈçOutputDebugString£¨TEXT£¨µ÷ÊÔÐÅÏ¢£©£»¡£ÈôÒªÊä³öº¬²ÎÊýµÄ×Ö·û´®£¬¿É½èÖúsprintf_sµÈº¯Êý£¬ÏȽ«ÐÅϢдÈ뻺³åÇø£¬ÔÙÓÃOutputDebugStringAÊä³ö¡£
ͨ³££¬Ê¹ÓÃvoid main£¨£©×÷ΪÖ÷º¯ÊýÊDz»ÍƼöµÄ£¬ÒòΪËü²»·ûºÏCÓïÑÔ±ê×¼¡£ÕýÈ·µÄ×ö·¨ÊÇʹÓÃint main£¨£©×÷ΪÖ÷º¯Êý¡£½«void main£¨£©¸ÄΪint main£¨£©£¬²¢È·±£·µ»ØÒ»¸öÕûÊýÖµ£¬Èçint main£¨£© { ... return 0£» }¡£³ýÁËÉÏÊö·½·¨£¬»¹¿ÉÒÔͨ¹ýÐ޸ıàÒëÑ¡ÏîÀ´½â¾ö´°¿ÚÒ»ÉÁ¶ø¹ýµÄÎÊÌâ¡£
ÓÒ¼üµã»÷Ñ¡ÖеĴíÎóÌáʾÐÅÏ¢£¬»áµ¯³öÒ»¸öС´°¿Ú¡£ ÔÚÕâ¸öС´°¿ÚÖУ¬Ñ¡Ôñ¡°×ªµ½´íÎ󡡱ѡÏî¡£IDEͬÑù»á×Ô¶¯Ìø×ªµ½´úÂëÖеĴíÎóλÖ㬲¢ÔÚ¸ÃÐдúÂëµÄ×î×ó±ßÏÔʾһ¸öÀ¶É«±êÖ¾¡£Í¨¹ýÒÔÉÏÉèÖúͲÙ×÷£¬Äã¿ÉÒÔÇáËɵØÔÚCÓïÑÔ±àÒë¹ý³ÌÖж¨Î»²¢²é¿´¾ßÌåµÄ´íÎóλÖúÍÏà¹ØÐÅÏ¢£¬´Ó¶ø¸üÓÐЧµØ½øÐдúÂëµ÷ÊÔºÍÐÞÕý¡£
ʹÓÃCÓïÑÔ±àÒëÆ÷£¨ÈçGCC¡¢Visual StudioµÈ£©±àд²¢±àÒë³ÌÐò£¬Éú³É¿ÉÖ´ÐÐÎļþ£¨.exe£©¡£È·±£³ÌÐòÎÞ´íÎóÇÒÄܶÀÁ¢ÔËÐС£½«³ÌÐò·ÅÈë¹Ì¶¨Ä¿Â¼ ½«Éú³ÉµÄ¿ÉÖ´ÐÐÎļþ¸´ÖƵ½ÏµÍ³Îȶ¨Â·¾¶£¨ÈçC£ºProgram FilesMyApp£©£¬±ÜÃâ·¾¶±ä¶¯µ¼ÖÂÆô¶¯Ê§°Ü¡£

CÓïÑÔÔõÑùÏÔʾһÕÅͼƬ?
CÓïÑÔÏÔʾͼƬµÄ·½·¨¶àÖÖ¶àÑù£¬ÆäÖÐÒ»ÖÖ³£¼ûµÄ×ö·¨ÊÇÀûÓÃϵͳµ÷ÓÃÃüÁî¡£¶ÔÓÚÈçwzzx.jpgÕâÑùµÄͼƬÎļþ£¬¿ÉÒÔÖ±½ÓÔÚ³ÌÐòÖвåÈëÒ»ÐдúÂ룺system£¨mspaint wzzx.jpg£©£»£¬ÕâÑùÔÚ³ÌÐòÔËÐÐʱ¾ÍÄÜÏÔʾ¸ÃͼƬ¡£
Èç¹ûÓÐͼƬ£¨ÀýÈç wzzx.jpg£© ³ÌÐòÖвåÒ»¾ä£ºsystem£¨mspaint wzzx.jpg£©£» ¾Í¿ÉÒÔ ÔÚÔËÐÐʱÏÔʾÕâÕÅͼƬ¡£
ÔÚCÓïÑÔÖÐÏÔʾһÕÅjpgͼƬ£¬Í¨³£ÐèÒª½èÖúWindowsƽ̨µÄCOM¿âºÍOLE×Ô¶¯»¯¹¦ÄÜ£¬ÒÔÏÂÊÇÒ»¸ö¼òÒªµÄ²½Öè˵Ã÷£ºÑ¡ÔñͼÏñÎļþ£ºÊ¹Óñê×¼µÄÎļþ´ò¿ª¶Ô»°¿òÀ´Ñ¡ÔñjpgͼÏñÎļþ£¬²¢½«Îļþ·¾¶´æ´¢ÔÚ±äÁ¿ÖС£Õâͨ³£Í¨¹ýMFC¿âÖеÄCFileDialogÀàÀ´ÊµÏÖ¡£¶ÁȡͼÏñÎļþµ½Á÷ÖУº´ò¿ªÑ¡ÔñµÄͼÏñÎļþ£¬²¢»ñÈ¡ÎļþµÄ״̬ºÍ´óС¡£
¿ÉÒÔÓú¯ÊýOleLoadPicture´Ó°üº¬ÓÐͼÏñÊý¾ÝµÄÁ÷ÖÐ×°ÔØÍ¼Ïñ¡£
ÔÚCÓïÑÔÖжÁȡһÕÅͼƬ²¢½øÐмòµ¥´¦Àí£¬Í¨³£Éæ¼°ÒÔϼ¸¸ö²½Ö裺ѡÔñºÏÊʵÄͼƬ¸ñʽ¿â£ºÓÉÓÚͼƬ¸ñʽÖڶ࣬ÿÖÖ¸ñʽ¶¼ÓÐÆäÌØ¶¨µÄ´æ´¢·½Ê½ºÍ½âÎö·½·¨¡£Òò´Ë£¬ÐèҪʹÓÃרÃŵĿâÀ´¶ÁÈ¡ºÍ½âÎöÕâЩͼƬ¸ñʽ¡£
WaitCÓïÑÔÖеÄwaitº¯Êý
ÔÚCÓïÑÔÖУ¬`wait`º¯ÊýÓÃÓÚÈõ±Ç°½ø³ÌÔÝÍ£Ö´ÐУ¬Ö±µ½×Ó½ø³Ì½áÊø»ò½ÓÊÕµ½Ðźš£Õâ¸öº¯Êýͨ³£Óë`fork`º¯ÊýÒ»ÆðʹÓã¬ÒÔ´´½¨×Ó½ø³Ì¡£Æä»ù±¾¶¨ÒåÔÚ`types.h`ºÍ`wait.h`Í·ÎļþÖУ¬º¯ÊýÔÐÍΪ`pid_t wait£¨int *status£©`¡£
includewindows.h µ÷Óà Sleep£¨3000£©£»¾ÍÊǵȴý3000ºÁÃ루3Ã룩¡£µÚÒ»¸ö×ÖĸS´óд¡£
sem_wait£º¸Ãº¯ÊýÓÉPthread¿âÌṩ£¬Ö÷ÒªÓÃÓÚÓû§Ì¬µÄÓ¦ÓóÌÐòÖС£µ±Ó¦ÓóÌÐòÐèÒªµÈ´ýij¸öÐźÅÁ¿Ê±£¬¿ÉÒÔµ÷Óô˺¯Êý¡£down£º¸Ãº¯Êý½öÔÚÄں˻·¾³ÖÐʹÓ㬳£¼ûÓÚÇý¶¯³ÌÐò¿ª·¢µÈÄÚºË̬´úÂëÖС£ËüÓÃÓÚÄÚºËÖжÔÐźÅÁ¿µÄ²Ù×÷¡£¹¦ÄÜʵÏÖ£ºsem_wait£ºµÈ´ý²¢Ê¹ÐźÅÁ¿Öµ¼õÒ»¡£
µÈ´ýÖУºwaiting ¡£waitÓ¢ÓïÖÐÓеȴýµÄÒâ˼£¬ÔÚ¼ÆËã»úÁìÓòËü»¹ÊÇÒ»ÖÖJavaÊõÓCÓïÑÔÖÐÒ²ÓÐwaitÃüÁî¡£wait [wet]£ºn. µÈ´ý£¬ µÈ´ýʱ¼ä¡£v. µÈ£¬ µ¢¸é£¬ µÈºò£» µÈºò£¬ ÑÓ»º£¬ ÆÚ´ý¡£º¯Êý˵Ã÷ ²ÎÊý status ÊÇÒ»¸öÕûÐÎÖ¸Õë¡£
×îÖ÷ÒªµÄÇø±ðÊÇsleep·½·¨Ã»ÓÐÊÍ·ÅËø£¬¶ø wait ·½·¨ÊÍ·ÅÁËËø£¬Ê¹µÃÆäËûÏ߳̿ÉÒÔʹÓÃͬ²½¿ØÖÆ¿é»òÕß·½·¨¡£sleepÖ¸Ï̱߳»µ÷ÓÃʱ£¬Õ¼×ÅCPU²»¹¤×÷£¬ÐÎÏóµØËµÃ÷Ϊ¡°Õ¼×ÅCPU˯¾õ¡±£¬´Ëʱ£¬ÏµÍ³µÄCPU²¿·Ö×ÊÔ´±»Õ¼Óã¬ÆäËûÏß³ÌÎÞ·¨½øÈ룬»áÔö¼Óʱ¼äÏÞÖÆ¡£
ÔÚLinuxÄÚºËÖУ¬ÐźÅÁ¿²Ù×÷API°üº¬sem_wait£¨£©ºÍsem_post£¨£©¡£sem_wait£¨£©º¯ÊýÓÉPthread¿âÌṩ£¬ÓÃÓڵȴý²¢Ê¹ÐźÅÁ¿Öµ¼õÒ»£¬¶øsem_post£¨£©ÔòÊÇÆä¶ÔÓ¦µÄÔöÒ»²Ù×÷¡£ÕâЩº¯ÊýÓÉÓ¦ÓóÌÐòµ÷Óã¬Äں˱¾ÉíÎÞ·¨Ö±½Óµ÷Óá£ÔÚʹÓÃPthread¿âʱ£¬ÐèÁ´½Ópthread¿â£¨Ê¹ÓÃ-lpthreadÖ¸Á¡£
CÓïÑÔµÄsleep,wait,delayº¯ÊýÓÐÊ²Ã´Çø±ð?
sleepÊÇAPIº¯Êý£¬delayËÆºõÊÇCרÓеġ£ÀïÃæµÄ²ÎÊý¶¼ÊǺÁÃë¡£
delay£¨£©ÊÇÑ»·µÈ´ý£¬¸Ã½ø³Ì»¹ÔÚÔËÐУ¬Õ¼Óô¦ÀíÆ÷¡£sleep£¨£©²»Í¬£¬Ëü»á±»¹ÒÆð£¬°Ñ´¦ÀíÆ÷ÈøøÆäËûµÄ½ø³Ì¡£
ÔÚCÓïÑÔÖУ¬ÓÐÁ½¸öÓëʱ¼äÑÓ³ÙÏà¹ØµÄº¯Êý£ºSleep£¨£©ºÍusleep£¨£©£¬ÒÔ¼°Ò»¸ö½ÏÉÙʹÓõÄdelay£¨£©¡£Sleep£¨£©º¯ÊýÔÚWindows»·¾³ÏÂͨ³£Óë#include windows.hÒ»ÆðʹÓ㬶øÔÚLinux»òGCCÖпÉÄÜʹÓÃ#include unistd.h¡£ÔÚWindowsÏ£¬Sleep£¨£©ÒÔºÁÃëΪµ¥Î»£¬ÈçSleep£¨1000£©±íʾÔÝÍ£1Ãë¡£
sleepºÍwaitµÄÇø±ð£ºsleepµÄÒâ˼ÊÇ£ºË¯£¬Ë¯¾õ£¬Ë¯Ãß¡£waitµÄÒâ˼ÊÇ£ºµÈºò£¬ÍƳ٣¬ÑÓ»ºµÈ´ý£¬µ¢¸é£¬ËźòÓò͡£
CÓïÑÔÔõô°´ÈÎÒâ¼üÍ˳ö
CÓïÑÔÖпÉÒÔʹÓú¯Êýsystem£¨£©¡¢getch£¨£©ÊµÏÖ°´¼üÍ˳ö¡£Ö±½Óµ÷ÓÃϵͳº¯Êý system£¨¡°pause¡±£©£ºsystem£¨£©»áµ÷ÓÃfork£¨£©²úÉú×Ó½ø³Ì£¬ ÓÉ×Ó½ø³ÌÀ´µ÷ÓÃ/bin/sh-c string À´Ö´ÐвÎÊýstring ×Ö·û´®Ëù´ú±íµÄÃüÁ ´ËÃüÁîÖ´ÐÐÍêºóËæ¼´·µ»ØÔµ÷ÓõĽø³Ì¡£system£¨¡°pause¡±£©¿ÉÒÔʵÏÖ¶³½áÆÁÄ»£¬±ãÓÚ¹Û²ì³ÌÐòµÄÖ´Ðнá¹û¡£
¿ÉÒÔ¼Ó¸öÓï¾ä getch£¨£©£»±íʾÔÚ´ËÔÝÍ£ µ±Äú°´ÈÎÒâ¼üʱ ³ÌÐò¼ÌÐøÔËÐС£
Ò»¸öCÓïÑÔÔ´Îļþ¾¹ý±àÒëºóÉú³É.exeÎļþ£¬Èç¹ûÔÚ±àÒëÆ÷ÖлòÕßDOS´°¿ÚÖÐÔËÐУ¬ÔÚ³ÌÐò½áÊøºó²¢²»»áÁ¢¼´Í˳ö£¬¶øÊÇ»áÌáʾ°´ÈÎÒâ¼üÍ˳ö¡£
½â¾öCÓïÑÔ³ÌÐòÔËÐÐÉÁÍËÎÊÌ⣬¿ÉÒÔ²ÉÈ¡ÒÔϼ¸ÖÖ·½·¨£ºÔÚ´úÂëĩβ¼ÓÈëµÈ´ýº¯Êý£ºÔÚreturn 0£»Ö®Ç°£¬´úÂë¶Îĩβ¼ÓÉÏgetch£»»ògetchar£»¡£getch£»£ºÍƼöʹÓã¬ÔÊÐíÓû§Í¨¹ýÈÎÒâ¼üÍ˳ö¡£getchar£»£ºÒªÇóÓû§ÊäÈë¶à¸ö×Ö·ûºó°´»Ø³µ¼ü½áÊø¡£Ê¹Óøú¯ÊýÐèÔÚ´úÂëÖмÓÈëÍ·Îļþ#include stdio.h¡£