¹ØÓÚLINUXÖеÄFORKº¯Êý
Ò»Ö±ÏëдµãLINUXÖеÄFORKº¯Êý,µ«ÊǰÉ,ÎÒʵÔÚÊÇÌ«ÀÁÁË,ÔÙ¼ÓÉÏÎIJɲ»ÔõôºÃ,ËùÒԾʹÓÍøÉÏÕÒÁËÆªÐ´µÄ²»´íµÄÎÄÕÂ,¿´ÍêÖ®ºóÓ¦¸Ã¶ÔFORKº¯ÊýÓÐÒ»¶¨µÄÁ˽â~~
¸ø³öÈçÏÂC³ÌÐò£¬ÔÚlinuxÏÂʹÓÃgcc±àÒ룺
1 #include "stdio.h"
2 #include "sys/types.h"
3 #include "unistd.h"
4
5 int main()
6 {
7 pid_t pid1;
8 pid_t pid2;
9
10 pid1 = fork();
11 pid2 = fork();
12
13 printf("pid1:%d, pid2:%d\n", pid1, pid2);
14 }
ÒªÇóÈçÏ£º
ÒÑÖª´ÓÕâ¸ö³ÌÐòÖ´Ðе½Õâ¸ö³ÌÐòµÄËùÓнø³Ì½áÊøÕâ¸öʱ¼ä¶ÎÄÚ£¬Ã»ÓÐÆäËüнø³ÌÖ´ÐÐ
¡£
1¡¢Çë˵³öÖ´ÐÐÕâ¸ö³ÌÐòºó£¬½«Ò»¹²ÔËÐм¸¸ö½ø³Ì¡£
2¡¢Èç¹ûÆäÖÐÒ»¸ö½ø³ÌµÄÊä³ö½á¹ûÊÇ“pid1:1001, pid2:1002”£¬Ð´³öÆäËû½ø³ÌµÄÊä³ö
½á¹û£¨²»¿¼Âǽø³ÌÖ´ÐÐ˳Ðò£©¡£
Ã÷ÏÔÕâµÀÌâµÄÄ¿µÄÊÇ¿¼²ìlinuxÏÂforkµÄÖ´ÐлúÖÆ¡£ÏÂÃæÎÒÃÇͨ¹ý·ÖÎöÕâ¸öÌâÄ¿£¬Ì¸Ì¸
linuxÏÂforkµÄÔËÐлúÖÆ¡£
Ô¤±¸ÖªÊ¶
ÕâÀïÏÈÁгöһЩ±ØÒªµÄÔ¤±¸ÖªÊ¶£¬¶ÔlinuxϽø³Ì»úÖÆ±È½ÏÊìϤµÄÅóÓÑ¿ÉÒÔÂÔ¹ý¡£
1¡¢½ø³Ì¿ÉÒÔ¿´×ö³ÌÐòµÄÒ»´ÎÖ´Ðйý³Ì¡£ÔÚlinuxÏ£¬Ã¿¸ö½ø³ÌÓÐΨһµÄPID±êʶ½ø³Ì¡£
PIDÊÇÒ»¸ö´Ó1µ½32768µÄÕýÕûÊý£¬ÆäÖÐ1Ò»°ãÊÇÌØÊâ½ø³Ìinit£¬ÆäËü½ø³Ì´Ó2¿ªÊ¼ÒÀ´Î±àºÅ¡£µ±
ÓÃÍê32768ºó£¬´Ó2ÖØÐ¿ªÊ¼¡£
2¡¢linuxÖÐÓÐÒ»¸ö½Ð½ø³Ì±íµÄ½á¹¹ÓÃÀ´´æ´¢µ±Ç°ÕýÔÚÔËÐеĽø³Ì¡£¿ÉÒÔʹÓÓps aux
”ÃüÁî²é¿´ËùÓÐÕýÔÚÔËÐеĽø³Ì¡£
3¡¢½ø³ÌÔÚlinuxÖгÊÊ÷×´½á¹¹£¬initΪ¸ù½Úµã£¬ÆäËü½ø³Ì¾ùÓи¸½ø³Ì£¬Ä³½ø³ÌµÄ¸¸½ø
³Ì¾ÍÊÇÆô¶¯Õâ¸ö½ø³ÌµÄ½ø³Ì£¬Õâ¸ö½ø³Ì½Ð×ö¸¸½ø³ÌµÄ×Ó½ø³Ì¡£
4¡¢forkµÄ×÷ÓÃÊǸ´ÖÆÒ»¸öÓ뵱ǰ½ø³ÌÒ»ÑùµÄ½ø³Ì¡£Ð½ø³ÌµÄËùÓÐÊý¾Ý£¨±äÁ¿¡¢»·¾³±ä
Á¿¡¢³ÌÐò¼ÆÊýÆ÷µÈ£©ÊýÖµ¶¼ºÍÔ½ø³ÌÒ»Ö£¬µ«ÊÇÊÇÒ»¸öȫеĽø³Ì£¬²¢×÷ΪԽø³ÌµÄ×Ó½ø³Ì
¡£
½âÌâµÄ¹Ø¼ü
ÓÐÁËÉÏÃæµÄÔ¤±¸ÖªÊ¶£¬ÎÒÃÇÔÙÀ´¿´¿´½âÌâµÄ¹Ø¼ü¡£ÎÒÈÏΪ£¬½âÌâµÄ¹Ø¼ü¾ÍÊÇÒªÈÏʶµ
Ïà¹ØÎĵµ£º
ÓÉÓÚ Linux Á¼ºÃµÄÓû§È¨ÏÞ¹ÜÀíÌåϵ£¬²¡¶¾ÍùÍùÊÇ Linux ϵͳ¹ÜÀíÔ±×îºó²ÅÐèÒª¿¼ÂǵÄÎÊÌâ¡£ÒÔÍù£¬Linux ÉϵÄɱ¶¾Èí¼þÖ÷ÒªÊÇΪÆóÒµµÄÓʼþºÍÎļþ·þÎñÆ÷ËùÉè¼ÆµÄ¡£Èç½ñ£¬Ëæ×Å Linux ×ÀÃæÓû§ÊýÁ¿µÄÔö³¤£¬×ÀÃæÓû§ÔÚÊÜÒæÓÚ Linux ϵͳ¶Ô²¡¶¾½ÏÇ¿µÄÌìÈ»ÃâÒßÁ¦µÄͬʱ£¬Ò²ÐèҪɱ¶¾Èí¼þÇåÀí´ÓÍøÂç»òUÅÌ´øÀ´µÄWIndows²¡¶¾¡£¾¡¹ÜÄÇЩ ......
¹²Ïí¿âµÄÃüÃû¹ßÀý
°´ÕÕ¹²Ïí¿âµÄÃüÃû¹ßÀý£¬Ã¿¸ö¹²Ïí¿âÓÐÈý¸öÎļþÃû£ºreal name¡¢sonameºÍlinker
name¡£ÕæÕýµÄ¿âÎļþ£¨¶ø²»ÊÇ·ûºÅÁ´½Ó£©µÄÃû×ÖÊÇreal
name£¬°üº¬ÍêÕûµÄ¹²Ïí¿â°æ±¾ºÅ¡£ÀýÈçÉÏÃæµÄlibcap.so.1.10¡¢libc-2.8.90.soµÈ¡£
sonameÊÇÒ»¸ö·ûºÅÁ´½ÓµÄÃû×Ö£¬Ö»°üº¬¹²Ïí¿âµÄÖ÷°æ±¾ºÅ£¬Ö÷°æ±¾ºÅÒ»Ö¼´¿É±£Ö¤¿âº¯ÊýµÄ½Ó¿ ......
# uname -a # ²é¿´ÄÚºË/²Ù×÷ϵͳ/CPUÐÅÏ¢
¡¡¡¡# head -n 1 /etc/issue # ²é¿´²Ù×÷ϵͳ°æ±¾
¡¡¡¡# cat /proc/cpuinfo # ²é¿´CPUÐÅÏ¢
¡¡¡¡# hostname&nb ......
vi±à¼Æ÷ÊÇËùÓÐUnix¼°Linuxϵͳϱê×¼µÄ±à¼Æ÷£¬ËüµÄÇ¿´ó²»Ñ·É«ÓÚÈκÎ×îеÄÎı¾±à¼Æ÷£¬ÕâÀïÖ»ÊǼòµ¥µØ½éÉÜÒ»ÏÂËüµÄÓ÷¨ºÍһС²¿·ÖÖ¸Áî¡£ÓÉÓÚ
¶ÔUnix¼°LinuxϵͳµÄÈκΰ汾£¬vi±à¼Æ÷ÊÇÍêÈ«ÏàͬµÄ£¬Òò´ËÄú¿ÉÒÔÔÚÆäËûÈκνéÉÜviµÄµØ·½½øÒ»²½Á˽âËü¡£ViÒ²ÊÇLinuxÖÐ×î»ù±¾µÄÎı¾±à
¼Æ÷£¬Ñ§»áËüºó£¬Äú½«ÔÚLinuxµÄÊÀ½çÀﳩÐÐ ......