9)LinuxÏÂC¿ª·¢¹¤¾ß½éÉÜ
9)LinuxÏÂC¿ª·¢¹¤¾ß½éÉÜ
LinuxµÄ·¢ÐаæÖаüº¬Á˺ܶàÈí¼þ¿ª·¢¹¤¾ß. ËüÃÇÖеĺܶàÊÇÓÃÓÚ C ºÍ C++Ó¦ÓóÌÐò¿ª·¢
µÄ. ±¾ÎĽéÉÜÁËÔÚ Linux ÏÂÄÜÓÃÓÚ C Ó¦ÓóÌÐò¿ª·¢ºÍµ÷ÊԵŤ¾ß. ±¾ÎĵÄÖ÷Ö¼ÊǽéÉÜÈç
ºÎÔÚ Linux ÏÂʹÓà C ±àÒëÆ÷ºÍÆäËû C ±à³Ì¹¤¾ß, ¶ø·Ç C ÓïÑÔ±à³ÌµÄ½Ì³Ì.
GNU C ±àÒëÆ÷
GNU C ±àÒëÆ÷(GCC)ÊÇÒ»¸öÈ«¹¦ÄÜµÄ ANSI C ¼æÈݱàÒëÆ÷. Èç¹ûÄãÊìϤÆäËû²Ù×÷ϵͳ»òÓ²
¼þƽ̨ÉϵÄÒ»ÖÖ C ±àÒëÆ÷, Ä㽫ÄÜºÜ¿ìµØÕÆÎÕ GCC. ±¾½Ú½«½éÉÜÈçºÎʹÓà GCC ºÍһЩ
GCC ±àÒëÆ÷×î³£ÓõÄÑ¡Ïî.
ʹÓà GCC
ͨ³£ºó¸úһЩѡÏîºÍÎļþÃûÀ´Ê¹Óà GCC ±àÒëÆ÷. gcc ÃüÁîµÄ»ù±¾Ó÷¨ÈçÏÂ:
gcc [options] [filenames]
ÃüÁîÐÐÑ¡ÏîÖ¸¶¨µÄ²Ù×÷½«ÔÚÃüÁîÐÐÉÏÿ¸ö¸ø³öµÄÎļþÉÏÖ´ÐÐ. ÏÂһС½Ú½«ÐðÊöһЩÄã»á×î
³£Óõ½µÄÑ¡Ïî.
GCC Ñ¡Ïî
GCC Óг¬¹ý100¸öµÄ±àÒëÑ¡Ïî¿ÉÓÃ. ÕâЩѡÏîÖеÄÐí¶àÄã¿ÉÄÜÓÀÔ¶¶¼²»»áÓõ½, µ«Ò»Ð©Ö÷
ÒªµÄÑ¡Ï»áƵ·±Óõ½. ºÜ¶àµÄ GCC Ñ¡Ïî°üÀ¨Ò»¸öÒÔÉϵÄ×Ö·û. Òò´ËÄã±ØÐëΪÿ¸öÑ¡Ïî
Ö¸¶¨¸÷×ÔµÄÁ¬×Ö·û, ²¢ÇÒ¾ÍÏó´ó¶àÊý Linux ÃüÁîÒ»ÑùÄã²»ÄÜÔÚÒ»¸öµ¥¶ÀµÄÁ¬×Ö·ûºó¸úÒ»
×éÑ¡Ïî. ÀýÈç, ÏÂÃæµÄÁ½¸öÃüÁîÊDz»Í¬µÄ:
gcc -p -g test.c
gcc -pg test.c
µÚÒ»ÌõÃüÁî¸æËß GCC ±àÒë test.c ʱΪ prof ÃüÁÁ¢ÆÊÎö(profile)ÐÅÏ¢²¢ÇҰѵ÷ÊÔÐÅ
Ï¢¼ÓÈëµ½¿ÉÖ´ÐеÄÎļþÀï. µÚ¶þÌõÃüÁîÖ»¸æËß GCC Ϊ gprof ÃüÁÁ¢ÆÊÎöÐÅÏ¢.
µ±Äã²»ÓÃÈκÎÑ¡Ïî±àÒëÒ»¸ö³ÌÐòʱ, GCC ½«»á½¨Á¢(¼Ù¶¨±àÒë³É¹¦)Ò»¸öÃûΪ a.out µÄ¿É
Ö´ÐÐÎļþ. ÀýÈç, ÏÂÃæµÄÃüÁÔÚµ±Ç°Ä¿Â¼Ï²úÉúÒ»¸ö½Ð a.out µÄÎļþ:
gcc test.c
ÄãÄÜÓà -o ±àÒëÑ¡ÏîÀ´Îª½«²úÉúµÄ¿ÉÖ´ÐÐÎļþÖ¸¶¨Ò»¸öÎļþÃûÀ´´úÌæ a.out. ÀýÈç, ½«Ò»
¸ö½Ð count.c µÄ C ³ÌÐò±àÒëΪÃû½Ð count µÄ¿ÉÖ´ÐÐÎļþ, Ä㽫ÊäÈëÏÂÃæµÄÃüÁî:
gcc -o count count.c
------------------------------------------------------------------------------
--
×¢Òâ: µ±ÄãʹÓà -o Ñ¡Ïîʱ, -o ºóÃæ±ØÐë¸úÒ»¸öÎļþÃû.
------------------------------------------------------------------------------
--
GCC ͬÑùÓÐÖ¸¶¨±àÒëÆ÷´¦Àí¶àÉٵıàÒëÑ¡Ïî. -c Ñ¡Ïî¸æËß GCC ½ö°ÑÔ´´úÂë±àÒëΪĿ±ê´ú
Âë¶øÌø¹ý»ã±àºÍÁ¬½ÓµÄ²½Öè. Õâ¸öÑ¡ÏîʹÓõķdz£Æµ·±ÒòΪËüʹµÃ±àÒë¶à¸ö C ³ÌÐòʱËÙ
¶È¸ü¿ì²¢ÇÒ¸üÒ×ÓÚ¹ÜÀí. ȱʡʱ GCC ½¨Á¢µÄÄ¿±ê´úÂëÎļþÓÐÒ»¸ö .o µÄÀ©Õ¹Ãû.
-S ±àÒëÑ¡Ïî¸æËß GCC ÔÚΪ C ´úÂë²úÉúÁË»ã±àÓïÑÔÎļþºóÍ£Ö¹±àÒ
Ïà¹ØÎĵµ£º
Õâ´Îתµ½Á˺½¿ÕµÄÒ»¸öÏîÄ¿£¬ÐèÒªÔÚLinuxÏÂÓÃC×ö¿ª·¢¡£°æ±¾¹ÜÀí²ÉÓÃSVN£¬´Ó×òÌìÏÂÎ翪ʼÎҾͿªÊ¼Á˰²×°£¬ÕæµÄÊÇÍ´¿àµÄ¹ý³Ì¡£ÏÖÔÚµ¹Êǰ²×°ºÃÁË£¬µ«ÊÇÅäÖÃÃüÁûÓÐÕÆÎÕ¡£
Èç¹ûÓÐȨÏÞ´ÓÍøÉÏÖ±½Ó¸üÐÂÈí¼þ£¬ÎÒ²»±ØÃ¿´Î¶¼È¥ÕÒÔ´Âë°ü£¬È ......
Õâ¸öÊÇÎÒÔÚÒ»±¾ÊéÉÏ¿´µ½µÄ£¬ÆäÖеÄһЩ´úÂëÎÒÓÐËù¸Ä±ä£¬Ð´¸ø¸÷λºÃÓѹ²Ïíһϣ¡
#include <sys/types.h>
#include <sys/socket.h>
#include <unistd.h>
#include <stdio.h>
#include <string.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <errno.h&g ......
1£®µÈ´ýÏß³Ì
pthread_join º¯ÊýÓÃÀ´µÈ´ýÒ»¸öÏ̵߳ĽáÊø£¬ÀàËÆÓÚ½ø³ÌµÄ wait º¯Êý¡£
´Ëº¯Êý½«×èÈûµ÷Óõ±Ç°Ï̵߳Ľø³Ì£¬Ö±µ½´ËÏß³ÌÍ˳ö¡£¼´Õâ¸öº¯ÊýÊÇÒ»¸öÏß³Ì×èÈûµÄº¯Êý£¬µ÷ÓÃËüµÄ½ø³Ì½«Ò»Ö±µÈ´ýµ½±»µÈ´ýµÄÏ߳̽áÊøÎª£¬µ±º¯Êý·µ»ØÊ±£¬´¦ÓÚ±»µÈ´ý״̬µÄÏß³Ì×ÊÔ´±»Êջء£Èç¹ûÖ´Ðгɹ¦£¬½«·µ»Ø 0£¬Èç¹ûʧ°ÜÔò·µ»ØÒ»¸ö·Ç 0¡£ ......
http://www.ibm.com/developerworks/cn/linux/l-ipc/part5/index1.html
¹²ÏíÄÚ´æ¿ÉÒÔ˵ÊÇ×îÓÐÓõĽø³Ì¼äͨÐÅ·½Ê½£¬Ò²ÊÇ×î¿ìµÄIPCÐÎʽ¡£Á½¸ö²»Í¬½ø³ÌA¡¢B¹²ÏíÄÚ´æµÄÒâ˼ÊÇ£¬Í¬Ò»¿éÎïÀíÄÚ´æ±»Ó³Éäµ½
½ø³ÌA¡¢B¸÷×ԵĽø³ÌµØÖ·¿Õ¼ä¡£½ø³ÌA¿ÉÒÔ¼´Ê±¿´µ½½ø³ÌB¶Ô¹²ÏíÄÚ´æÖÐÊý¾ÝµÄ¸üУ¬·´Ö®ÒàÈ»¡£ÓÉÓÚ¶à¸ö½ø³Ì¹²Ïíͬһ¿éÄÚ´æÇøÓò£ ......