Linux fork()º¯Êýѧϰ
ÔÚ UNIX ϵͳÖУ¬Óû§´´½¨Ò»¸öнø³ÌµÄΨһ·½·¨¾ÍÊǵ÷ÓÃϵͳµ÷Óà fork¡£µ÷ Óà fork µÄ½ø³Ì³ÆÎª¸¸½ø³Ì£¬¶øÐ´´½¨µÄ½ø³Ì½Ð×ö×Ó½ø³Ì¡£ÏµÍ³µ÷ÓõÄÓï·¨¸ñʽ£º
pid = fork();
ÔÚ´Óϵͳµ÷Óà fork Öзµ»ØÊ±£¬Á½¸ö½ø³Ì³ýÁË·µ»ØÖµ pid ²»Í¬Í⣬¾ßÓÐÍêȫһÑùµÄÓû§¼¶ÉÏÏÂÎÄ¡£ÔÚ×Ó½ø³ÌÖУ¬pid µÄֵΪÁã¡£ÔÚϵͳÆô¶¯Ê±ÓɺËÐÄÄÚ ²¿µØ´´½¨µÄ½ø³Ì0ÊÇΨһ²»Í¨¹ýϵͳµ÷Óà fork ¶ø´´½¨µÄ½ø³Ì¡£
ºËÐÄΪϵͳµ÷Óà fork Íê³ÉÏÂÁвÙ×÷£º
Ϊнø³ÌÔÚ½ø³Ì±íÖзÖÅäÒ»¸ö¿ÕÏî¡£
Ϊ×Ó½ø³Ì¸³Ò»¸öΨһµÄ½ø³Ì±êʶºÅ (PID)¡£
×öÒ»¸ö¸¸½ø³ÌÉÏÏÂÎĵÄÂß¼¸±±¾¡£ÓÉÓÚ½ø³ÌµÄijЩ²¿·Ö£¬ÈçÕýÎÄÇø£¬¿ÉÄܱ»¼¸¸ö ½ø³ÌËù¹²Ïí£¬ËùÒÔºËÐÄÓÐʱֻҪÔö¼Óij¸öÇøµÄÒýÓÃÊý¼´¿É£¬¶ø²»ÊÇÕæµÄ½«¸ÃÇø¿½±´µ½Ò»¸ö еÄÄÚ´æÎïÀíÇø¡£
Ôö¼ÓÓë¸Ã½ø³ÌÏà¹ØÁªµÄÎļþ±íºÍË÷Òý½Úµã±íµÄÒýÓÃÊý¡£
¶Ô¸¸½ø³Ì·µ»Ø×Ó½ø³ÌµÄ½ø³ÌºÅ£¬¶Ô×Ó½ø³Ì·µ»ØÁã¡£
Àí½âϵͳµ÷Óà fork µÄʵÏÖÊÇÊ®·ÖÖØÒªµÄ£¬ÒòΪ×Ó½ø³Ì¾ÍÏó´ÓÌì¶ø½µÒ»ÑùµØ¿ªÊ¼ ËüµÄÖ´ÐÐÐòÁС£
ÏÂÃæÊÇϵͳµ÷Óà fork µÄËã·¨¡£ºËÐÄÊ×ÏÈÈ·ÐÅÓÐ×ã¹»µÄ×ÊÔ´À´³É¹¦Íê³É fork¡£ Èç¹û×ÊÔ´²»Âú×ãÒªÇó£¬Ôòϵͳµ÷Óà fork ʧ°Ü¡£Èç¹û×ÊÔ´Âú×ãÒªÇ󣬺ËÐÄÔÚ½ø³Ì ±íÖÐÕÒÒ»¸ö¿ÕÏ²¢¿ªÊ¼¹¹Ôì×Ó½ø³ÌµÄÉÏÏÂÎÄ¡£
Ëã·¨£ºfork
ÊäÈ룺ÎÞ
Êä³ö£º¶Ô¸¸½ø³ÌÊÇ×Ó½ø³ÌµÄ PID
¶Ô×Ó½ø³ÌÊÇ0
{
¼ì²é¿ÉÓõĺËÐÄ×ÊÔ´
ȡһ¸ö¿ÕÏеĽø³Ì±íÏîºÍΨһµÄ PID ºÅ
¼ì²éÓû§Ã»Óйý¶àµÄÔËÐнø³Ì
½«×Ó½ø³ÌµÄ״̬ÉèÖÃΪ“´´½¨”״̬
½«¸¸½ø³ÌµÄ½ø³Ì±íÖеÄÊý¾Ý¿½±´µ½×Ó½ø³Ì±íÖÐ
µ±Ç°Ä¿Â¼µÄË÷Òý½ÚµãºÍ¸Ä±äµÄ¸ùĿ¼(Èç¹û¿ÉÒÔ)µÄÒýÓÃÊý¼Ó1
Îļþ±íÖеĴò¿ªÎļþµÄÒýÓÃÊý¼Ó1
ÔÚÄÚ´æÖÐ×÷¸¸½ø³ÌÉÏÏÂÎĵĿ½±´
ÔÚ×Ó½ø³ÌµÄϵͳ¼¶ÉÏÏÂÎÄÖÐѹÈëÐéÉèϵͳ¼¶ÉÏÏÂÎIJã
/* ÐéÉèÉÏÏÂÎIJãÖк¬ÓÐʹ×Ó½ø³ÌÄÜ
* ʶ±ð×Ô¼ºµÄÊý¾Ý£¬²¢Ê¹×Ó½ø³Ì±»µ÷¶Èʱ
* ´ÓÕâÀ↑ʼÔËÐÐ
*/
if (ÕýÔÚÖ´ÐеĽø³ÌÊǸ¸½ø³Ì) {
½«×Ó½ø³ÌµÄ״̬ÉèÖÃΪ“¾ÍÐ÷”״̬
return (×Ó½ø³ÌµÄ PID) // ´Óϵͳµ½Óû§
}
else {
³õʼ»¯¼ÆÊ±Çø
return 0;
}
}
ÎÒÃÇÀ´¿´¿´ÏÂÃæµÄÀý×Ó¡£¸Ã³ÌÐò˵Ã÷µÄÊǾ¹ýϵͳµ÷Óà fork Ö®ºó£¬¶ÔÎļþµÄ¹²Ïí´æÈ¡¡£Óû§µ÷ÓøóÌÐòʱӦÓÐÁ½¸ö²ÎÊý£¬Ò»¸öÊÇÒѾÓеÄÎļþÃû£¬ÁíÍâÒ»¸öÊÇÒª´´½¨µÄÐÂÎļþÃû¡£¸Ã½ø³Ì´ò¿ªÒÑÓеÄÎļþ£¬´´½¨Ò»¸öÐÂÎļþ£¬È»ºó£¬¼Ù
Ïà¹ØÎĵµ£º
Service Discovery Protocol(SDP)ÌṩһÖÖÄÜÁ¦£¬ÈÃÓ¦ÓóÌÐòÓз½·¨·¢ÏÖÄÄÖÖ·þÎñ¿ÉÓÃÒÔ¼°ÕâÖÖ·þÎñµÄÌØÐÔ¡£
·þÎñ·¢ÏÖÐÒé(SDP»òBluetooth SDP)ÔÚÀ¶ÑÀÐÒéÕ»ÖжÔÀ¶ÑÀ»·¾³ÖеÄÓ¦ÓóÌÐòÓÐÌØÊâµÄº¬Ò⣬·¢ÏÖÄĸö·þÎñÊÇ¿ÉÓõĺÍÈ·¶¨ÕâЩ¿ÉÓ÷þÎñµÄÌØÕ÷¡£SDP¶¨ÒåÁËbluetooth client·¢ÏÖ¿ÉÓÃbluetooth server·þÎñºÍËüÃǵÄÌØÕ÷µÄ·½·¨¡£ ......
http://www.ibm.com/developerworks/cn/linux/l-rcu/
º¯ÊýÕªÒª£º
C´úÂë
/*¶ÁÕßÔÚ¶ÁÈ¡ÓÉRCU±£»¤µÄ¹²ÏíÊý¾ÝʱʹÓøú¯Êý±ê¼ÇËü½øÈë¶Á¶ËÁÙ½çÇø¡£*/
rcu_read_lock()
/*
¸Ãº¯ÊýÓërcu_read_lockÅä¶ÔʹÓã¬ÓÃÒÔ±ê¼Ç¶ÁÕßÍ˳ö¶Á¶ËÁÙ½çÇø¡£¼ÐÔÚÕâÁ½¸öº¯ÊýÖ®¼äµÄ´úÂëÇø³ÆÎª"¶Á¶ËÁÙ½çÇø" ......
1.×Ô¶¨ÒåÊä³ö
Ïë±Ø´ó¼Ò¶¼ÓÐÀûÓÃÊä³öº¯ÊýÈçprintfÀ´°ïÖúÎÒÃǵ÷ÊÔ³ÌÐòµÄ¾Àú£¬ÕâÊÇÒ»ÖֱȽÏÔʼµÄ³ÌÐòµ÷ÊÔ¸¨Öú·½·¨£¬ÔÚLinuxÏÂÒ²¿ÉÒÔΪÎÒÃÇËùÓᣲ»¹ýÕâÖÖ·½·¨ÓÐÒ»¸öÃ÷ÏÔµÄȱµã£¬¾ÍÊÇÔÚµ÷ÊÔÍêºóÎÒÃDZØÐë×¢ÊÍ»òɾ³ýµôÕâЩ¸¨Öú´úÂë¡£Linux CÌṩÁË-DDEBUGÕâ¸ö±àÒë±ê¼ÇÀ´¶¨ÒåDEBUGÕâ¸ö·ûºÅ£¬½èÖúÓڸ÷ûºÅ£¬ÎÒÃÇ¿ÉÒÔÔÚÓ¦Ó ......
ÔÚLinuxÉϽ¨Á¢LDAP·þÎñÆ÷
ÔÚLinuxÉϽ¨Á¢LDAP·þÎñÆ÷(Ò»)
×÷ÕߣºCarla Schroder;¹Ëâý·Òë ·¢ÎÄʱ¼ä£º2003.12.30
ÄãµÄÍøÂçÔÚ¹æÄ£ºÍ¸´ÔÓÐÔ·½ÃæÕý´¦Óڳɳ¤ÆÚ¡£Ò»Â·´«²¥Ã¿¼þÊÂÎï¡¢·¢Õ¹×³´óÿ¼þÊÂÎïÈ»ºóÔÙ¶ªÆúÿ¼þÊÂÎォռÓÃÁËËüÒ»ÉúµÄʱ¼ä¡£µ±ÄãÍ´¿àµÄË«ÊÖ±§Í·£¬ÊÔͼŪÇå³þµÄʱºò£¬ÄãµÄÓû§²»ÖªµÀ´ÓÄÄÀï·¢ÏÖÁËÄãµÄÃØÃܵ绰ºÅ ......
µ÷ÊÔÓû§³ÌÐò£º
Ö÷»ú£ºlinux os
eclipse + cdt + gdb +gcc½»²æ±àÒëÁ´
Ä¿±ê»ú£ºarmlinux os
gdbServer
ͨѶ·½Ê½£ºtcp
Îļþ´«Ê䷽ʽ£ºftp, minicom, ͨ¹ýnfs.
ÅäÖòο¼ ......