Linux ÏÂÏß³Ìͬ²½
½øÐжàÏ̱߳à³Ì£¬×îÍ·Ì۵ľÍÊÇÄÇЩ¹²ÏíµÄÊý¾Ý¡£ÒòΪÄãÎÞ·¨ÖªµÀÄĸöÏ̻߳áÔÚÄĸöʱºò¶ÔËü½øÐвÙ×÷£¬ÄãÒ²ÎÞ·¨µÃÖªÄǸöÏ̻߳áÏÈÔËÐУ¬ÄĸöÏ̻߳áºóÔËÐС£ÏÂÃæ½éÉÜһЩ¼¼Êõ£¬Í¨¹ýËûÃÇ£¬Äã»áºÏÀí°²ÅÅÄãµÄÏß³ÌÖ®¼ä¶Ô×ÊÔ´µÄ¾ºÕù¡£
l »¥³âÌåMutex
l ÐźŵÆSemophore
l Ìõ¼þ±äÁ¿Conditions
ÏÈ˵һÏ»¥³âÁ¿¡£
ʲôʱºò»áÓÃÉÏ»¥³âÁ¿ÁË£¿±ÈÈçÄãÏÖÔÚÓÐһȫ¾ÖÁ´±í£¬ÄãÓм¸¸ö¹¤×÷Ï̡߳£Ã¿Ò»¸öÏ̴߳ӸÃÁ´±íÖÐÈ¡³öÍ·½Úµã£¬È»ºó¶Ô¸ÃÍ·½Úµã½øÐд¦Àí¡£±ÈÈçÏÖÔÚÏß³Ì1ÕýÔÚÈ¡³öÍ·½Úµã£¬ËûµÄ²Ù×÷ÈçÏ£º
Item * p =queue_list;
Queue_list=queue_list->next;
Process_job(p);
Free(p);
µ±Ïß³Ì1´¦ÀíÍêµÚÒ»²½£¬Ò²¾ÍÊÇItem *p=queue_listºó£¬ÕâʱºòϵͳֹͣÏß³Ì1µÄÔËÐУ¬¸Ä¶øÔËÐÐÏß³Ì2¡£Ïß³Ì2ÕÕÑùÈ¡³öÍ·½Úµã£¬È»ºó½øÐд¦Àí£¬×îºóÊÍ·ÅÁ˸ýڵ㡣¹ýÁ˶Îʱ¼ä£¬Ïß³Ì1ÖØÐµõ½ÔËÐС£¶øÕâ¸öʱºò£¬ÆäʵpËùÖ¸ÏòµÄ½ÚµãÒѾ±»Ïß³Ì2Êͷŵô£¬¶øÏß³Ì1¶Ô´ËºÁÎÞÖªÏþ¡£Ëû»á½Ó×ÅÔËÐÐprocess_job(p)¡£¶øÕ⽫µ¼ÖÂÎÞ·¨Ô¤Áϵĺó¹û£¡
¶ÔÓÚÕâÖÖÇé¿ö£¬ÏµÍ³¸øÎÒÃÇÌṩÁË»¥³âÁ¿¡£ÄãÔÚÈ¡³öÍ·½Úµãǰ±ØÐëÒªµÈ´ý»¥³âÁ¿£¬Èç¹û´ËʱÓÐÆäËûÏß³ÌÒѾ»ñµÃ¸Ã»¥³âÁ¿£¬ÄÇôÏ߳̽«»á×èÈûÔÚÕâ¸öµØ·½¡£Ö»Óеȵ½ÆäËûÏß³ÌÊͷŵô¸Ã»¥³âÁ¿ºó£¬ÄãµÄÏ̲߳ÅÓпÉÄܵõ½¸Ã»¥³âÁ¿¡£ÎªÊ²Ã´ÊÇ¿ÉÄÜÁË£¿ÒòΪ¿ÉÄÜ´ËʱÓв»Ö¹ÄãÒ»¸öÏß³ÌÔڵȺò¸Ã»¥³âÁ¿£¬¶øÏµÍ³ÎÞ·¨±£Ö¤ÄãµÄÏ߳̽«»áÓÅÏÈÔËÐС£
»¥³âÁ¿µÄÀàÐÍΪpthread_mutex_t¡£Äã¿ÉÒÔÉùÃ÷¶à¸ö»¥³âÁ¿¡£ÔÚÉùÃ÷¸Ã±äÁ¿ºó£¬ÄãÐèÒªµ÷ÓÃpthread_mutex_init()À´´´½¨¸Ã±äÁ¿¡£pthread_mutex_initµÄ¸ñʽÈçÏ£º
int pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutex-
attr_t *mutexattr);
µÚÒ»¸ö²ÎÊý£¬mutext£¬Ò²¾ÍÊÇÄã֮ǰÉùÃ÷µÄÄǸö»¥³âÁ¿£¬µÚ¶þ¸ö²ÎÊýΪ¸Ã»¥³âÁ¿µÄÊôÐÔ¡£Õâ¸ö½«ÔÚºóÃæÏêϸÌÖÂÛ¡£
ÔÚ´´½¨¸Ã»¥³âÁ¿Ö®ºó£¬Äã±ã¿ÉÒÔʹÓÃËüÁË¡£ÒªµÃµ½»¥³âÁ¿£¬ÄãÐèÒªµ÷ÓÃÏÂÃæµÄº¯Êý£º
int pthread_mutex_lock(pthread_mutex_t *mutex);
¸Ãº¯ÊýÓÃÀ´¸ø»¥³âÁ¿ÉÏËø£¬Ò²¾ÍÊÇÎÒÃÇÇ°ÃæËù˵µÄµÈ´ý²Ù×÷¡£»¥³âÁ¿Ò»µ©±»ÉÏËøºó£¬ÆäËûÏß³ÌÈç¹ûÏë¸ø¸Ã»¥³âÁ¿ÉÏËø£¬ÄÇô¾Í»á×èÈûÔÚÕâ¸ö²Ù×÷ÉÏ¡£Èç¹ûÔÚ´Ë֮ǰ¸Ã»¥³âÁ¿ÒѾ±»ÆäËûÏß³ÌÉÏËø£¬ÄÇô¸Ã²Ù×÷½«»áÒ»Ö±×èÈûÔÚÕâ¸öµØ·½£
Ïà¹ØÎĵµ£º
ÊÖÍ·Óиöep9315µÄ°å£¬½ñÌìͻȻÏëÆðÅÜÒ»ÏÂadslÉÏÍø¡£ÍíÉÏ»ØÀ´¾Í¿ªÊ¼¸ã¡£
´Ó10µãµ½ÏÖÔÚ£¬ÖÕÓÚÄܹ»ÅÜÆðÀ´¡£
¸ø´ó¼Ò½è¼øÒ»Ï¡£
1.±àÒëÄںˣ¬°ÑpppµÄÄÇЩѡÏîÑ¡ÉÏ¡£ (ÎÒÓÃ2.6.8.1µÄkernel£¬cirrus µÄpatch)
2.libpcap-0.9.1 Õâ¸ö°üÊÇpppdÐèÒªµÄ¡£
./configure CC=arm-linux-gcc CFLAGS=-msoft-float --target=arm-linu ......
ÐźŻù±¾ÔÀí
LinuxÊÇÒ»ÖÖ¶àÓû§¶àÈÎÎñµÄ²Ù×÷ϵͳ£¬ÏµÍ³ÄÚ»áÓжà¸ö½ø³Ì´æÔÚ¡£ÎÞÂÛÊDzÙ×÷ϵͳÓëÓû§½ø³ÌÖ®¼ä£¬»¹ÊÇÓû§½ø³ÌÖ®¼ä£¬¾³£ÐèÒª¹²ÏíÊý¾ÝºÍ½»»»ÐÅÏ¢¡£½ø³Ì
¼äÏ໥ͨÐŵķ½·¨ÓжàÖÖ£¬ÐźűãÊÇÆäÖÐ×îΪ¼òµ¥µÄÒ»ÖÖ£¬ËüÓÃÒÔÖ¸³öijʼþµÄ·¢Éú¡£ÔÚLinuxϵͳÖУ¬¸ù¾Ý¾ßÌåµÄµÄÈíÓ²¼þÇé¿ö£¬Äں˳ÌÐò»á·¢³ö²»Í¬µÄÐźÅ
......
ÔËÐÐÈçÏÂÃüÁ¿É¿´µ½LinuxÖ§³ÖµÄÐźÅÁÐ±í£º
$ kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL
5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE
9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2
13) SIGPIPE 14) SIGALRM 15) SIGTERM 17) SIGCHLD
18) S ......
ÆäÖÐÓÐһЩº¯ÊýµÄ×÷ÓÃÍêÈ«Ïàͬ£¬Ö»ÊDzÎÊý²»Í¬¡££¨¿ÉÄܺܶàÊìϤC++ÅóÓÑÂíÉϾÍÄÜÁªÏëÆðº¯ÊýÖØÔØ£¬µ«ÊDZðÍüÁËLinuxºËÐÄÊÇÓÃCÓïÑÔдµÄ£¬ËùÒÔÖ»
ÄÜÈ¡³É²»Í¬µÄº¯ÊýÃû£©¡£»¹ÓÐһЩº¯ÊýÒѾ¹ýʱ£¬±»ÐµĸüºÃµÄº¯ÊýËù´úÌæÁË£¨gccÔÚÁ´½ÓÕâЩº¯Êýʱ»á·¢³ö¾¯¸æ£©£¬µ«ÒòΪ¼æÈݵÄÔÒò»¹±£Áô×Å£¬ÕâЩº¯ÊýÔÚǰ
Ãæ±êÉÏ“*”ºÅÒÔÊ ......
linuxÐźŻúÖÆÔ¶Ô¶±ÈÏëÏóµÄ¸´ÔÓ£¬±¾ÎÄÁ¦ÕùÓÃ×î¶ÌµÄƪ·ù£¬¶Ô¸Ã»úÖÆ×öÁËÉîÈëϸÖµķÖÎö¡£¶ÁÕß¿ÉÒÔÏȶÁÒ»ÏÂÐźÅÓ¦ÓÃʵÀý£¨ÔÚÐźţ¨Ï£©ÖУ©£¬ÕâÑù¿ÉÒÔ¶ÔÐźŷ¢ËÍÖ±µ½ÏàÓ¦µÄ´¦Àíº¯ÊýÖ´ÐÐÍê±ÏÕâÒ»¹ý³ÌÓиö´óÖµÄÓ¡Ïó¡£±¾Îľ¡Á¿¸ø³öÁ˽Ïк¯ÊýµÄÓ¦ÓÃʵÀý£¬×ÅÖØËµÃ÷ÕâЩµÄ¹¦ÄÜ¡£
Ò»¡¢Ðźż°ÐźÅÀ´Ô´
Ðźű¾ÖÊ
Ð ......