linuxÏÂÃüÁîÐÐϱàÒëc³ÌÐò
£££££££££££££££££££££££££££££££££££££££££££
LinuxmineÊÕ¼¯ÕûÀí¡¡ ×÷Õߣºlinux±¦¿â (http://www.linuxmine.com)¡¡ ʱ¼ä£º2006-10-11
£££££££££££££££££££££££££££££££££££££££££££
C ÊÇËùÓа汾µÄUNIXÉϵÄϵͳÓïÑÔ.
C ÔÚ¹ýÈ¥µÄ¶þÊ®ÄêÖÐÓÐÁ˺ܴóµÄ·¢Õ¹. ÔÚ80Äê´úÄ©ÆÚÃÀ¹ú¹ú¼Ò±ê׼лá(American NationalStandards Institute)·¢²¼ÁËÒ»¸ö±»³ÆΪ ANSI C µÄ C ÓïÑÔ±ê×¼.Õâ¸ü¼Ó±£Ö¤Á˽«À´ÔÚ²»Í¬Æ½Ì¨É쵀 C µÄÒ»ÖÂÐÔ. ÔÚ80Äê´ú»¹³öÏÖÁËÒ»ÖÖ C µÄÃæÏò¶ÔÏóµÄÀ©Õ¹³ÆΪ C++.
Linux ÉÏ¿ÉÓÃµÄ C ±àÒëÆ÷ÊÇ GNU C ±àÒëÆ÷, Ëü½¨Á¢ÔÚ×ÔÓÉÈí¼þ»ù½ð»áµÄ±à³ÌÐí¿ÉÖ¤µÄ»ù´¡ÉÏ, Òò´Ë¿ÉÒÔ×ÔÓÉ·¢²¼. ÄãÄÜÔÚ Linux µÄ·¢ÐйâÅÌÉÏÕÒµ½Ëü.
Ëæ Slackware Linux ·¢ÐÐµÄ GNU C ±àÒëÆ÷(GCC)ÊÇÒ»¸öÈ«¹¦ÄÜµÄ ANSI C ¼æÈݱàÒëÆ÷. Èç¹ûÄãÊìϤÆäËû²Ù×÷ϵͳ»òÓ²¼þƽ̨ÉϵÄÒ»ÖÖ C ±àÒëÆ÷, Ä㽫ÄܺܿìµØÕÆÎÕ GCC. ÕâºÍjavaÔÚÃüÁîÐÐÏÂ
±àÒëÒ²ºÜÀàËÆÎÒÃǽ«ÔÚÏÂÃæ½éÉÜÈçºÎʹÓà GCC ºÍһЩ GCC ±àÒëÆ÷×î³£ÓõÄÑ¡Ïî.
¸ñʽ gcc [option] [sourcefilename]
gccµÄÑ¡ÏîÊ®·Ö·±¶à,´óÔ¼ÓÐÉÏ°ÙÖÐ,²»¹ýƽʱ³£ÓõIJ»ÊǷdz£¶à,ÎÒÃǽ«Òª½éÉÜһЩ³£ÓõÄÑ¡Ïî:
×î¼òµ¥µÄÊÇ:gcc hello.c
ĬÈϵÄÇé¿öϽ«Éú³Éa.outµÄ¿ÉÖ´ÐÐÐÔÎļþ,ÄãÖ»ÐèÒªÔÚÖÕ¶ËÉÏÊäÈë./a.out¾Í¿ÉÒÔ¿´µ½Ö´ÐеĽá¹û.
Èç¹ûÄãÏëÖ¸¶¨Éú³ÉÄ¿±êÎļþµÄÃû×ÖÄÇôÄã¿ÉÒÔ¼ÓÉÏ -oÑ¡Ïî,ÃüÁîÈçÏÂ:
gcc -o hello hello.c
gccÒ²ÔÊÐíÄãÖ»±àÒëÔ´³ÌÐò,ÕâÑù¿ÉÒÔÖ»¼ì²é±àÒëʱ¿ÌµÄ´íÎó,ÓÐÀûÒ²µ÷ÊÔ³ÌÐò,ÓÃ-cÑ¡Ïî¿ÉÒÔ´ïµ½Õâ¸öÄ¿µÄ
ÃüÁîÈçÏÂ:
gcc -c hello hello.c
½á¹ûÉú³ÉÁËÒ»¸öÖмä´úÂëhello.oÎļþ
±àÒëÑ¡Ïî¸æËß GCC ÔÚΪ C ´úÂë²úÉúÁË»ã±àÓïÑÔÎļþºóÍ£Ö¹±àÒë. GCC ²úÉúµÄ»ã±àÓïÑÔÎļþµÄȱʡÀ©Õ¹ÃûÊÇ .s . -E Ñ¡Ïîָʾ±àÒëÆ÷½ö¶ÔÊäÈëÎļþ½øÐÐÔ¤´¦Àí. µ±Õâ¸öÑ¡ÏʹÓÃʱ, Ô¤´¦ÀíÆ÷µÄÊä³ö±»Ë͵½±ê×¼Êä³ö¶ø²»ÊÇ´¢´æÔÚÎļþÀï.
Ö®ºóÄã¿ÉÒÔ¶ÔÉÏÊöÖмä´úÂë½øÐÐÁ´½ÓÔËÐÐ,ʹÓÃÃüÁî:
gcc -o hello.out hello.c
ÓÅ »¯ Ñ¡ Ïî
µ±ÄãÓà GCC ±àÒë C ´úÂëʱ, Ëü»áÊÔ×ÅÓÃ×îÉÙµÄʱ¼äÍê³É±àÒë²¢ÇÒʹ±àÒëºóµÄ´úÂëÒ×ÓÚµ÷ÊÔ. Ò×ÓÚµ÷ÊÔÒâζ×űàÒëºóµÄ´úÂëÓëÔ´´úÂëÓÐͬÑùµÄÖ´ÐдÎÐò, ±àÒëºóµÄ´úÂëûÓо¹ýÓÅ»¯.ÓкܶàÑ¡Ïî¿ÉÓÃÓÚ¸æËß GCC ÔںķѸü¶à±àÒëʱ¼äºÍÎþÉüÒ×µ÷ÊÔÐԵĻù´¡ÉϲúÉú¸üС¸ü¿ìµÄ¿ÉÖ´ÐÐÎļþ. ÕâЩѡÏîÖÐ×îµäÐ͵ÄÊÇ-O ºÍ -O2 Ñ¡Ïî.
-O Ñ¡Ïî¸æËß GCC ¶ÔÔ´´úÂë½øÐлù±¾ÓÅ
Ïà¹ØÎĵµ£º
±¾ÎÄÑ¡×Ô¡¶LinuxϵͳÓëÍøÂç·þÎñ¹ÜÀí¼¼Êõ´óÈ«£¨µÚ2°æ£©¡·Ò»Êé
µÚ2°æ Ç°ÑÔ LinuxÊÇÒ»¸öÓÅÐãµÄ¡¢ÈÕÒæ³ÉÊìµÄ²Ù×÷ϵͳ£¬¾¹ýÊ®¼¸ÄêµÄ·¢Õ¹£¬ÒѾӵÓÐÁË´óÁ¿µÄÓû§¡£ÎªÁËÂú×ãÖÚ¶àLinux³õѧÕß¡¢°®ºÃÕß¼°×¨ÒµÈËÔ±µÄʹÓÃÐèÒª£¬±ÊÕßÔÚ¶àÄê´ÓÊÂLinuxÑо¿¡¢½Ìѧ¼°¿ª·¢¹¤×÷µÄ»ù´¡ÉϾ ......
Linux²Ù×÷ϵͳÊÇÒ»ÖÖ¶àÓû§¶àÈÎÎñ¡¢Ö§³Ö¶àÖÖƽ̨µÄ¿ªÔ´µÄÀàUnix²Ù×÷ϵͳ£¬ÆäÖ§³Ö¶àÖÖƽ̨£¬ÔÚ·þÎñ¶Ë¿ÉÓëÆäËüÉÌÓÃÀàUnixϵͳæÇÃÀ£¬ÔÚ¿Í»§¶ËÔòÏòWindowsϵÁз¢³öÁËÇ¿ÓÐÁ¦µÄÌôÕ½¡£×ÔLinuxµ®ÉúÒÔÀ´£¬·¢Õ¹Ñ¸ÃÍ£¬ÒѾÊܵ½ÁËÈ«Çò¿ªÔ´ÉçÇøºÍÐí¶àÉÌÒµ¿Æ¼¼¾ÞÍ·µÄ´óÁ¦Ö§³ÖÒÔ¼°Õþ¸®¡¢½ÌÓý»ú¹¹¡¢¿ÆÑе¥Î»µÄÖØÊÓ¡£±¾ÎĽéÉÜÁËLinuxÐéÄâ´æ´¢ ......
Õâ¸öÎÊÌâ˵ÆðÀ´¿É´ó¿ÉС£¬¿É³¤¿É¶Ì£¬»ù±¾¶¼ÊÇ×Ô¼ºÇÐÉíµÄ¾Ñé×ܽᡣ
¸ßүү˵¹ý"¹ýÔçµÄÓÅ»¯ÊÇÍò¶ñÖ®Ô´"£¬×ö¿ª·¢²»¿ÉÄÜÒ»¿ªÊ¼¾ÍÏë×ÅÓÅ»¯£¬Ó¦¸Ã´ÓÈ«¾Ö¿¼Á¿£¬´Ó¸÷¸ö½Ç¶Èȥ˼¿¼£¬È¨ºâÀû±×£¬×ö³öÒ»¸ö
·ûºÏ´ó¾ÖÀûÒæµÄÉè¼Æ£¬ÏÂÀ´ÔÙ¿¼ÂÇÈçºÎÓÅ»¯¡£
ÓÅ»¯ÊÇÔÚÏÖÓÐÒѳÉÐεÄÉè¼Æ¼Ü¹¹Ï£¬×öµÄÐÔÄÜÌáÉý¡£¼ÙÈçÄãÒ»¿ªÊ¼¾ÍÉè¼ÆÒ»¸öµÍÐÔÄÜµÄ ......
Linux·þÎñÆ÷ÐÔÄܼà²âÊǺÜÖØÒªµÄ¹¤×÷£¬·þÎñÆ÷ÔËÐÐÓ¦¸ÃÌṩ×îÓÐЧµÄϵͳÐÔÄÜ¡£µ±·þÎñÆ÷ϵͳÐÔÄÜͻȻµÍÓÚƽ¾ùÓ¦ÓеÄÇé¿ö£¬ÎÊÌâ¿ÉÄÜÀ´×ÔÔÚÖ´ÐеĽø³Ì¡¢ÄÚ´æµÄʹÓÃÂÊ¡¢´ÅÅ̵ÄÐÔÄÜ¡¢ÍøÂçÁ÷Á¿ºÍCPU µÄѹÁ¦¡£ÔÚÔ¤Ëã¶ÌȱµÄ½ñÌ죬Àí½âÈçºÎÓÅ»¯ÏµÍ³ÐÔÄܱÈÒÔÍùÈκÎʱºò¶¼ÖØÒª¡£ÒªÊµÏÖËüµÄÇ°ÌáÊÇ£¬Äã±ØÐë³ä·ÖÁ˽â×Ô¼ºµÄ¼ÆËã»úºÍÍøÂ磬´Ó¶ ......
µ¼¶Á£º
¡¡¡¡1£®Socket¼ò½é
¡¡¡¡SocketÊÇTCP/IPÍøÂçµÄAPI£¬¿ÉÒÔÓÃËüÀ´¿ª·¢ÍøÂçÓ¦ÓóÌÐò£¬SocketÊý¾Ý´«ÊäÊÇÒ»ÖÖÌØÊâµÄI/O£¬SocketÒ²ÊÇÒ»ÖÖÎļþÃèÊö·û
¡¡¡¡2£®SocketµÄ½¨Á¢
¡¡¡¡int socket(int domain£¬ int type£¬ int protocol)
¡¡¡¡º¯Êý·µ»Ø£ºÒ»¸öÕûÐ͵ÄSocketÃèÊö·û£¬¿ÉÒÔÔÚºóÃæµ÷ÓÃËü¡£
¡¡¡¡²ÎÊý˵Ã÷£º
¡¡¡ ......