LinuxϵÄC±à³ÌÈëÃÅÖ®¡°Ï̡߳±¿ØÖÆÓë¡°Ï̡߳±Í¨Ðűà³Ì
±¾ÎÄÀ´×Ô:Linux½Ì³Ì -- http://doc.linuxpk.com/53295.html
ÈçÓв»Ã÷°×Ö®´¦£¬»¶Ó²Î¼ÓÉçÇøÌÖÂÛ
1.Linux“Ï߳̔
±ÊÕßÔø¾ÔÚ¡¶»ùÓÚǶÈëʽ²Ù×÷ϵͳVxWorksµÄ¶àÈÎÎñ²¢·¢³ÌÐòÉè¼Æ¡·£¨¡¶Èí¼þ±¨¡·2006ÄêµÚ5~12ÆÚ£©ÖÐÏêϸÐðÊöÁ˽ø³ÌºÍÏ̵߳ÄÇø±ð£¬²¢Ôø¾ËµÃ÷LinuxÊÇÒ»ÖÖ“¶à½ø³Ìµ¥Ï߳̔µÄ²Ù×÷ϵͳ¡£Linux±¾ÉíÖ»Óнø³ÌµÄ¸ÅÄ¶øÆäËùνµÄ“Ï߳̔±¾ÖÊÉÏÔÚÄÚºËÀïÈÔÈ»Êǽø³Ì¡£´ó¼ÒÖªµÀ£¬½ø³ÌÊÇ×ÊÔ´·ÖÅäµÄµ¥Î»£¬Í¬Ò»½ø³ÌÖеĶà¸öÏ̹߳²Ïí¸Ã½ø³ÌµÄ×ÊÔ´£¨Èç×÷Ϊ¹²ÏíÄÚ´æµÄÈ«¾Ö±äÁ¿£©¡£LinuxÖÐËùνµÄ“Ïֻ߳̔ÊÇÔÚ±»´´½¨µÄʱºò“¿Ë¡”(clone)Á˸¸½ø³ÌµÄ×ÊÔ´£¬Òò´Ë£¬clone³öÀ´µÄ½ø³Ì±íÏÖΪ“Ï߳̔£¬ÕâÒ»µãÒ»¶¨ÒªÅªÇå³þ¡£ LinuxÄÚºËÖ»ÌṩÁËÇáÁ¿½ø³ÌµÄÖ§³Ö£¬Î´ÊµÏÖÏß³ÌÄ£ÐÍ£¬µ«Linux¾¡×î´óŬÁ¦ÓÅ»¯Á˽ø³ÌµÄµ÷¶È¿ªÏú£¬ÕâÔÚÒ»¶¨³Ì¶ÈÉÏÃÖ²¹ÎÞÏ̵߳ÄȱÏÝ¡£LinuxÓÃÒ»¸öºËÐĽø³Ì£¨ÇáÁ¿½ø³Ì£©¶ÔÓ¦Ò»¸öỊ̈߳¬½«Ï̵߳÷¶ÈµÈͬÓÚ½ø³Ìµ÷¶È£¬½»¸øºËÐÄÍê³É¡£
ĿǰLinuxÖÐ×îÁ÷ÐеÄÏ̻߳úÖÆÎªLinuxThreads£¬Ëù²ÉÓõľÍÊÇỊ̈߳½ø³Ì“Ò»¶ÔÒ»”Ä£ÐÍ£¬µ÷¶È½»¸øºËÐÄ£¬¶øÔÚÓû§¼¶ÊµÏÖÒ»¸ö°üÀ¨ÐźŴ¦ÀíÔÚÄÚµÄÏ̹߳ÜÀí»úÖÆ¡£LinuxThreadsÓÉXavier Leroy (Xavier.Leroy@inria.fr)¸ºÔ𿪷¢Íê³É£¬²¢ÒѰó¶¨ÔÚGLIBCÖз¢ÐУ¬ËüʵÏÖÁËÒ»ÖÖBiCapitalizedÃæÏòLinuxµÄPosix 1003.1c “pthread”±ê×¼½Ó¿Ú¡£Linuxthread¿ÉÒÔÖ§³ÖIntel¡¢Alpha¡¢MIPSµÈƽ̨ÉϵĶദÀíÆ÷ϵͳ¡£
°´ÕÕPOSIX 1003.1c ±ê×¼±àдµÄ³ÌÐòÓëLinuxthread ¿âÏàÁ´½Ó¼´¿ÉÖ§³ÖLinuxƽ̨ÉϵĶàỊ̈߳¬ÔÚ³ÌÐòÖÐÐè°üº¬Í·Îļþpthread. h£¬ÔÚ±àÒëÁ´½ÓʱʹÓÃÃüÁ
gcc -D -REENTRANT -lpthread xxx. c
ÆäÖÐ-REENTRANTºêʹµÃÏà¹Ø¿âº¯Êý(Èçstdio.h¡¢errno.hÖк¯Êý) ÊÇ¿ÉÖØÈëµÄ¡¢Ḭ̈߳²È«µÄ(thread-safe)£¬-lpthreadÔòÒâζ×ÅÁ´½Ó¿âĿ¼ÏµÄlibpthread.a»òlibpthread.soÎļþ¡£Ê¹ÓÃLinuxthread¿âÐèÒª2.0ÒÔÉϰ汾µÄLinuxÄں˼°ÏàÓ¦°æ±¾µÄC¿â(libc 5.2.18¡¢libc 5.4.12¡¢libc 6)¡£
2.“Ï߳̔¿ØÖÆ
Ï̴߳´½¨
½ø³Ì±»´´½¨Ê±£¬ÏµÍ³»áΪÆä´´½¨Ò»¸öÖ÷Ị̈߳¬¶øÒªÔÚ½ø³ÌÖд´½¨ÐµÄỊ̈߳¬Ôò¿ÉÒÔµ÷ÓÃpthread_create£º
pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *
(start_routine)(void*), void *arg);
start_routineΪÐÂÏ̵߳ÄÈë¿Úº¯Êý£¬argΪ´«µÝ¸østart_routineµÄ²ÎÊý¡£
ÿ¸öÏ̶߳¼ÓÐ×Ô¼ºµÄÏß³ÌID£¬Ò
Ïà¹ØÎĵµ£º
linuxÊÇÒ»¸ö¸´ÔÓµÄÈí¼þϵͳ£¬ÆäÄÚºËÔ´´úÂëÍùÍù»áÓõ½Ò»Ð©ÔÚÓ¦ÓóÌÐòÉè¼ÆÖв¿³£¼ûÓïÑԳɷֺͱà³Ì¼¼ÇÉ£¬ÕâЩ¶¼ÊÇ·ÖÎöÄÚºËÔ´´úÂëµÄ»ù±¾¹¦£¬Ï£Íû´ó¼ÒÄÜÖØµãÕÆÎÕ¡£
Ê×ÏÈ£¬gcc±àÒëÆ÷´ÓÓïÑÔÀïÎüÊÕÁË“inline”ºÍ“const”¡£inlineº¯ÊýµÄ´óÁ¿Ê¹Óã¬ÓÐÀûÓÚÌá¸ßÔËÐ ......
ÈκÎÒ»¸öÓø߼¶ÓïÑÔ±àдµÄ²Ù×÷ϵͳ£¬ÆäÄÚºËÔ´´úÂëÖÐ×ÜÓÐÉÙ²¿·Ö´úÂëÊÇÓûã±àÓïÑÔ±àдµÄ¡£¶Á
¹ýUnix Sys VÔ´´úÂëµÄ¶ÁÕß¶¼ÖªµÀ£¬ÔÚÆäÔ¼3ÍòÐеĺËÐÄ´úÂëÖÐÓûã±àÓïÑÔ±àдµÄ´úÂëÔ¼2000ÐУ¬·Ö
³É²»µ½20¸öÀ©Õ¹ÃûΪ.sºÍ.mµÄÎļþ£¬ÆäÖд󲿷ÖÊǹØÓÚÖжÏÓëÒì³£´¦ÀíµÄµ×²ã³ÌÐò£¬»¹ÓоÍÊÇÓë³õʼ
»¯ÓÐ¹ØµÄ³Ì ......
CÓïÑÔÖУ¬Í¼Ðκ¯Êý´óÖ¿ɷÖΪÁ½Àࣺ×Ö·ûģʽº¯ÊýºÍͼÐÎģʽº¯Êý¡£±¾½ÚÎÒÃÇÁ·Ï°Ê¹ÓÃ×Ö·ûģʽº¯Êý¡£
ʹÓÃ×Ö·ûģʽº¯ÊýÓ¦¸ÃÔÚ³ÌÐòÖÐÁªÈëconio.hÍ·²¿Îļþ¡£
ÏÂÃæÊÇһЩº¯ÊýµÄ×÷ÓÃ
1) void &nbs ......
¼ò½é
¡¡¡¡¶ÔÓںܶà³õѧÕßÀ´Ëµ£¬ÍùÍù¾õµÃ»Øµ÷º¯ÊýºÜÉñÃØ£¬ºÜÏëÖªµÀ»Øµ÷º¯ÊýµÄ¹¤×÷ÔÀí¡£±¾ÎĽ«Òª½âÊÍʲôÊǻص÷º¯Êý¡¢ËüÃÇÓÐʲôºÃ´¦¡¢ÎªÊ²Ã´ÒªÊ¹ÓÃËüÃǵȵÈÎÊÌ⣬ÔÚ¿ªÊ¼Ö®Ç°£¬¼ÙÉèÄãÒѾÊìÖªÁ˺¯ÊýÖ¸Õë¡£
¡¡¡¡Ê²Ã´Êǻص÷º¯Êý£¿
¡¡¡¡¼ò¶øÑÔÖ®£¬»Øµ÷º¯Êý¾ÍÊÇÒ»¸öͨ¹ýº¯ÊýÖ¸Õëµ÷Óõĺ¯Êý¡£Èç¹ûÄã°Ñº¯ÊýµÄÖ¸Õë(µØÖ·)×÷Ϊ²ÎÊý ......
ÎÒ¾õµÃ,ÔÚÊäÈëÊä³öº¯ÊýÖÐ,scanf()º¯Êý,Ó¦¸ÃÊÇ×îÂé·³µÄ,ÓÐʱËü¸øÎÒÃǵĽá¹ûºÜ¿ÉЦ,µ«ÊÇÒ»¶¨ÊÇÒ»ÔÒòµÄ....
Ê×ÏÈÉùÃ÷Ò»ÏÂ,ÕâÆªÈÕÖ¾²»ÊǽéÉÜscanf()Öи÷ÖÖ¸ñʽ·ûÓ÷¨µÄÎÄÕÂ(ûÓÐÕâ¸ö±ØÒª,µ«ÊÇ´ó¼ÒÒ»¶¨Òª»áÓÃ).
ÎÒ³¢ÊÔÁ˺ܶàÖÖÊäÈë,°üÀ¨Ò»Ð©´íÎóµÄÁ·Ï°,Ôø¾¶Ôscanf()ÓÉÃÔãתÏòÇåÐÑ,ÓÖÓÉÇåÐÑÔÙ´ÎתÏòÃÔã......²»ÖªµÀºÎʱÊǸö ......