LinuxÖеÄforkº¯ÊýÊÇʲô
linuxÖС°fork()¡±ÊÇÒ»¸öϵͳŲÓú¯Êý£¬ÓÃÓÚ½¨ÉèÒ»¸öеÄÀú³Ì£¬»á½¨ÉèÄ¿½ñÀú³ÌµÄÒ»¸ö¸±±¾£¬³ÆΪ×ÓÀú³Ì£¬×ÓÀú³ÌÓ븸Àú³ÌÏÕЩÍêÈ«Ïàͬ£¬°üÀ¨´úÂë¡¢Êý¾ÝÒÔ¼°·¿ªµÄÎļþÐÎò·ûµÈ£¬ÆäÔÐÍΪ¡°pid_t fork(void);¡±¡£
ÔÚLinuxÖУ¬fork()ÊÇÒ»¸öϵͳŲÓú¯Êý£¬ÓÃÓÚ½¨ÉèÒ»¸öеÄÀú³Ì¡£¸Ãº¯Êý»á½¨ÉèÄ¿½ñÀú³ÌµÄÒ»¸ö¸±±¾£¬³ÆΪ×ÓÀú³Ì¡£×ÓÀú³ÌÓ븸Àú³ÌÏÕЩÍêÈ«Ïàͬ£¬°üÀ¨´úÂë¡¢Êý¾ÝÒÔ¼°·¿ªµÄÎļþÐÎò·ûµÈ¡£
fork()º¯ÊýµÄÔÐÍÈçÏ£º
#include <sys> #include <unistd.h> pid_t fork(void);</unistd.h></sys>
µÇ¼ºó¸´ÖÆ
ÆäÖУ¬pid_tÊÇÒ»¸öÕûÊýÀàÐÍ£¬ÓÃÓÚÌåÏÖÀú³ÌID£¨PID£©¡£fork()º¯ÊýûÓвÎÊý¡£
fork()º¯ÊýŲÓúó»áÓÐÁ½¸ö·µ»ØÖµ£º
ÔÚ¸¸Àú³ÌÖУ¬fork()·µ»Ø×ÓÀú³ÌµÄPID£¨×ÓÀú³ÌµÄID£©¡£
ÔÚ×ÓÀú³ÌÖУ¬fork()·µ»Ø0¡£
Òò´Ë£¬¿ÉÒÔͨ¹ýÅжÏfork()µÄ·µ»ØÖµÀ´È·¶¨Ä¿½ñ´úÂëÊÇÔÚ¸¸Àú³ÌÖÐÖ´ÐÐÕÕ¾ÉÔÚ×ÓÀú³ÌÖÐÖ´ÐС£
ÏÂÃæÊÇÒ»¸ö¼òÆÓµÄʾÀý´úÂ룬ÑÝʾÁËfork()º¯ÊýµÄ»ù±¾Ó÷¨£º
#include <stdio.h> #include <unistd.h> int main() { pid_t pid = fork(); if (pid <p>ÔÚÉÏÊö´úÂëÖУ¬ÎÒÃÇŲÓÃÁËfork()º¯Êý²¢Æ¾Ö¤·µ»ØÖµÅжÏÄ¿½ñÊÇÔÚ¸¸Àú³ÌÕÕ¾É×ÓÀú³Ì¡£ÔÚ¸¸Àú³ÌÖУ¬ÎÒÃÇ´òÓ¡×ÓÀú³ÌµÄPID£»ÔÚ×ÓÀú³ÌÖУ¬ÎÒÃÇ´òÓ¡×Ô¼ºµÄPID¡£</p> <p>ÐèҪעÖصÄÊÇ£¬fork()º¯Êý»á½«¸¸Àú³ÌµÄÄÚ´æÍêÈ«¸´ÖƸø×ÓÀú³Ì£¬°üÀ¨¶Ñ¡¢Õ»ºÍÈ«¾Ö±äÁ¿µÈ¡£Òò´Ë£¬ÔÚfork()Ö®ºó£¬¸¸Àú³ÌÓë×ÓÀú³Ì»á»®·ÖÖ´Ðи÷×ԵĴúÂ룬»¥²»×ÌÈÅ¡£</p></unistd.h></stdio.h>
µÇ¼ºó¸´ÖÆ
ÒÔÉϾÍÊÇLinuxÖеÄforkº¯ÊýÊÇʲôµÄÏêϸÄÚÈÝ£¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡