linuxÖÐfork£¨£©º¯ÊýÏê½â
Ò»¡¢forkÈëÃÅ֪ʶ
ÏÈ¿´Ò»¸öÀý×Ó£º
/*
* fork_test.c
* version 1
* Created on: 2010-5-29
* Author: wangth
*/
#include <unistd.h>;
#include <stdio.h>
int main ()
{
pid_t fpid; //fpid±íʾforkº¯Êý·µ»ØµÄÖµ
//´Ëʱ½öÓÐÒ»¸ö½ø³Ì
fpid=fork();
//´Ëʱ²Ù×÷ϵͳÖÐÒѾÓÐÁ½¸ö½ø³ÌÔÚͬʱÔËÐÐ
if (fpid < 0)
printf("error in fork!");
else if (fpid == 0)
printf("I am the child process, my process id is %d\n",getpid());
else
printf("I am the parent process, my process id is %d\n",getpid());
return 0;
}
ÔËÐнá¹ûÊÇ£º
I am the parent process, my process id is 2365
I am the child process, my process id is 2367
Ò»¸ö½ø³Ì£¬°üÀ¨´úÂë¡¢Êý¾ÝºÍ·ÖÅ䏸½ø³ÌµÄ×ÊÔ´¡£fork£¨£©º¯Êýͨ¹ýϵͳµ÷Óô´½¨Ò»¸öÓëÔÀ´½ø³Ì¼¸ºõÍêÈ«ÏàͬµÄ½ø³Ì£¬Ò²¾ÍÊÇÁ½¸ö½ø³Ì¿ÉÒÔ×öÍêÈ«ÏàͬµÄÊ£¬µ«Èç¹û³õʼ²ÎÊý»òÕß´«ÈëµÄ±äÁ¿²»Í¬£¬Á½¸ö½ø³ÌÒ²¿ÉÒÔ×ö²»Í¬µÄÊ¡£
Ò»¸ö½ø³Ìµ÷ÓÃfork£¨£©º¯Êýºó£¬ÏµÍ³ÏȸøÐµĽø³Ì·ÖÅä×ÊÔ´£¬ÀýÈç´æ´¢Êý¾ÝºÍ´úÂëµÄ¿Õ¼ä¡£È»ºó°ÑÔÀ´µÄ½ø³ÌµÄËùÓÐÖµ¶¼¸´ÖƵ½ÐµÄнø³ÌÖУ¬Ö»ÓÐÉÙÊýÖµÓëÔÀ´µÄ½ø³ÌµÄÖµ²»Í¬¡£Ï൱ÓÚ¿Ë¡ÁËÒ»¸ö×Ô¼º¡£
ÔÚÓï¾äpid=fork()֮ǰ£¬Ö»ÓÐÒ»¸ö½ø³ÌÔÚÖ´ÐÐÕâ¶Î´úÂ룬µ«ÔÚÕâÌõÓï¾äÖ®ºó£¬¾Í±ä³ÉÁ½¸ö½ø³ÌÔÚÖ´ÐÐÁË£¬ÕâÁ½¸ö½ø³ÌµÄ¼¸ºõÍêÈ«Ïàͬ£¬½«ÒªÖ´ÐеÄÏÂÒ»ÌõÓï¾ä¶¼ÊÇif(pid<0)……
ΪʲôÁ½¸ö½ø³ÌµÄpid²»Í¬ÄØ£¬ÕâÓëforkº¯ÊýµÄÌØÐÔÓйء£forkµ÷ÓõÄÒ»¸öÆæÃîÖ®´¦¾ÍÊÇËü½ö½ö±»µ÷ÓÃÒ»´Î£¬È´Äܹ»·µ»ØÁ½´Î£¬Ëü¿ÉÄÜÓÐÈýÖÖ²»Í¬µÄ·µ»ØÖµ£º
1£©ÔÚ¸¸½ø³ÌÖУ¬fork·µ»ØÐ´´½¨×Ó½ø³ÌµÄ½ø³ÌID£»
2£©ÔÚ×Ó½ø³ÌÖУ¬fork·µ»Ø0£»
3£©Èç¹û³öÏÖ´íÎó£¬fork·µ»ØÒ»¸ö¸ºÖµ£»
ÔÚforkº¯ÊýÖ´ÐÐÍê±Ïºó£¬Èç¹û´´½¨Ð½ø³Ì³É¹¦£¬Ôò³öÏÖÁ½¸ö½ø³Ì£¬Ò»¸öÊÇ×Ó½ø³Ì£¬Ò»¸öÊǸ¸½ø³Ì¡£ÔÚ×Ó½ø³ÌÖУ¬forkº¯Êý·µ»Ø0£¬ÔÚ¸¸½ø³ÌÖУ¬fork·µ»ØÐ´´½¨×Ó½ø³ÌµÄ½ø³ÌID¡£ÎÒÃÇ¿ÉÒÔͨ¹ýfork·µ»ØµÄÖµÀ´Åжϵ±Ç°½ø³ÌÊÇ×Ó½ø³Ì»¹ÊǸ¸½ø³Ì¡£
fork³ö´í¿ÉÄÜÓÐÁ½ÖÖÔÒ
Ïà¹ØÎĵµ£º
¹úÍâ
¡¡¡¡http://lwn.net/
¡¡¡¡http://www.tldp.org/
¡¡¡¡https://rhn.redhat.com/
¡¡¡¡http://www.justlinux.com/
¡¡¡¡http://www.linuxtoday.com/
¡¡¡¡http://www.linuxquestions.org/
¡¡¡¡http://www.fokus.gmd.de/linux/
¡¡¡¡http://www.linux-tutorial.info/
¡¡¡¡http://www.freebsdforums.org/forums/
¡¡¡¡ ......
LinuxÌṩÁË´óÁ¿µÄÃüÁÀûÓÃËü¿ÉÒÔÓÐЧµØÍê³É´óÁ¿µÄ¹¤×÷£¬Èç´ÅÅ̲Ù×÷¡¢Îļþ´æÈ¡¡¢Ä¿Â¼²Ù×÷¡¢½ø³Ì¹ÜÀí¡¢ÎļþȨÏÞÉ趨µÈ¡£ËùÒÔ£¬ÔÚLinuxϵͳÉϹ¤×÷Àë²»¿ªÊ¹ÓÃϵͳÌṩµÄÃüÁî¡£ÒªÏëÕæÕýÀí½âLinuxϵͳ£¬¾Í±ØÐë´ÓLinuxÃüÁîѧÆð£¬Í¨¹ý»ù´¡µÄÃüÁîѧϰ¿ÉÒÔ½øÒ»²½Àí½âLinuxϵͳ¡£
²»Í¬Linux·¢ÐаæµÄÃüÁîÊýÁ¿²»Ò»Ñù£¬µ«Linux·¢ÐÐ°æ± ......
1.¼àÊÓÄÚ´æ
free -mt
total used free shared buffers cached
Mem: ......
LinuxÌṩÁË´óÁ¿µÄÃüÁÀûÓÃËü¿ÉÒÔÓÐЧµØÍê³É´óÁ¿µÄ¹¤×÷£¬Èç´ÅÅ̲Ù×÷¡¢Îļþ´æÈ¡¡¢Ä¿Â¼²Ù×÷¡¢½ø³Ì¹ÜÀí¡¢ÎļþȨÏÞÉ趨µÈ¡£ËùÒÔ£¬ÔÚLinuxϵͳÉϹ¤×÷Àë²»¿ªÊ¹ÓÃϵͳÌṩµÄÃüÁî¡£ÒªÏëÕæÕýÀí½âLinuxϵͳ£¬¾Í±ØÐë´ÓLinuxÃüÁîѧÆð£¬Í¨¹ý»ù´¡µÄÃüÁîѧϰ¿ÉÒÔ½øÒ»²½Àí½âLinuxϵͳ¡£
²»Í¬Linux·¢ÐаæµÄÃüÁîÊýÁ¿²»Ò»Ñù£¬µ«Linux·¢ÐÐ°æ± ......